static void Shutdown() { FoxEventLog.WriteEventLog("Server stopping", EventLogEntryType.Information); Debug.WriteLine("===== Cancelling ====="); WebServerHandler.EndWebServer(); RemoteNetworkConnectionWSCrosser.ShutdownWS(); KillConnections(); MaintenanceTasks.StopThreads(); ReportingThread.StopThreads(); ServiceRunning = false; }
static void TimeoutManager() { Debug.WriteLine(" === TMM started === "); int cnt = 0; do { Thread.Sleep(500); cnt++; if (cnt < 120) { continue; } cnt = 0; try { RemoteNetworkConnectionWSCrosser.TestTimeouts(); } catch (Exception ee) { Debug.WriteLine(ee.ToString()); } try { List <string> KillThem = new List <string>(); foreach (KeyValuePair <string, NetworkConnectionInfo> kvp in NetworkConnection.Connections) { Debug.WriteLine("Session " + kvp.Key + " -- " + kvp.Value.LastUsed.ToLongTimeString()); if (kvp.Value.LastUsed.AddMinutes(SessionTimeoutMin) < DateTime.Now) { KillThem.Add(kvp.Key); } } foreach (string K in KillThem) { Debug.WriteLine("Killing Session " + K + " -- timeout"); NetworkConnection.DeleteSession(K); } } catch (Exception ee) { Debug.WriteLine(ee.ToString()); } } while (Program.ServiceRunning == true); }
public static void SMain() { string ErrorReason; Console.WriteLine("Server version: " + Assembly.GetExecutingAssembly().GetName().Version.ToString() + (InstanceID == "" ? "" : " (" + InstanceID + ")")); FoxEventLog.WriteEventLog("Server version: " + Assembly.GetExecutingAssembly().GetName().Version.ToString() + " starting" + (InstanceID == "" ? "" : " (" + InstanceID + ")"), EventLogEntryType.Information); if (SQLTest.TestSettings(out ErrorReason) == false) { FoxEventLog.WriteEventLog("Settings are faulty: " + ErrorReason, EventLogEntryType.Error); Console.WriteLine("Settings are faulty: " + ErrorReason); #if !DEBUG Process.GetCurrentProcess().Kill(); #endif return; } if (SQLTest.TestServer(out ErrorReason) == false) { FoxEventLog.WriteEventLog("Cannot connect to the server: " + ErrorReason, EventLogEntryType.Error); Console.WriteLine("Cannot connect to the server: " + ErrorReason); #if !DEBUG Process.GetCurrentProcess().Kill(); #endif return; } RESTful.RegisterRESTfulClasses(); FS_Watcher.InstallFSW(); if (Utilities.TestSign(out ErrorReason) == false) { FoxEventLog.WriteEventLog("Cannot test-sign with the certificate " + SettingsManager.Settings.UseCertificate + ": " + ErrorReason, EventLogEntryType.Warning); } #if DEBUG if (Fox_LicenseGenerator.SDCLicensing.ValidLicense == false) { FoxEventLog.WriteEventLog("Writing a crap-license into memory.", EventLogEntryType.Information); Fox_LicenseGenerator.SDCLicensing.NumComputers = 1000; Fox_LicenseGenerator.SDCLicensing.AllowContract = true; Fox_LicenseGenerator.SDCLicensing.Data = new Fox_LicenseGenerator.LicensingData(); Fox_LicenseGenerator.SDCLicensing.Data.Features = ""; Fox_LicenseGenerator.SDCLicensing.Data.LicenseID = Guid.NewGuid().ToString(); Fox_LicenseGenerator.SDCLicensing.Data.LicenseType = "Memory"; Fox_LicenseGenerator.SDCLicensing.Data.Owner = "Fox"; Fox_LicenseGenerator.SDCLicensing.Data.OwnerCustomID = ""; Fox_LicenseGenerator.SDCLicensing.Data.SupportValidTo = null; Fox_LicenseGenerator.SDCLicensing.Data.UCID = UCID.GetUCID(); Fox_LicenseGenerator.SDCLicensing.Data.ValidTo = null; Fox_LicenseGenerator.SDCLicensing.Data.ValidFrom = DateTime.UtcNow.Date; Fox_LicenseGenerator.SDCLicensing.Data.Vacant1 = "1000"; Fox_LicenseGenerator.SDCLicensing.ValidLicense = true; } #endif try { Console.CancelKeyPress += Console_CancelKeyPress; WebServerHandler.RunWebServer(); MaintenanceTasks.StartMaintenanceTreads(); ReportingThread.StartReportingThreads(); RemoteNetworkConnectionWSCrosser.InitialInitWS(); Console.WriteLine("=============== Server started ==============="); Debug.WriteLine("=============== Server started ==============="); Console.WriteLine(Settings.Default.ListenOn); Debug.WriteLine(Settings.Default.ListenOn); Console.WriteLine(Settings.Default.WSListenOn); Debug.WriteLine(Settings.Default.WSListenOn); FoxEventLog.WriteEventLog("Server started", EventLogEntryType.Information); ServiceRunning = true; Thread tmm = new Thread(new ThreadStart(TimeoutManager)); tmm.Start(); do { Thread.Sleep(1000); } while (ServiceRunning == true); } catch (Exception ee) { FoxEventLog.WriteEventLog("Cannot start server " + ee.Message, EventLogEntryType.Error); Console.WriteLine("Cannot start server " + ee.Message); #if !DEBUG Process.GetCurrentProcess().Kill(); #endif return; } }
protected override void OnMessage(MessageEventArgs e) { RemoteNetworkConnectionWSCrosser.SendToAgent(SessionID, e.RawData); }