/// <summary> /// todo; requires some more testing /// </summary> public static void StopServer() { if (server.IsListening) { Trace.Write("Attempting to stop the server .... "); server.ThreadSafeStop(); server.Stop(); Trace.Write(".. Stopped!"); } }
public MelBoxWeb(int port) { using (var server = new RestServer()) { server.Port = PortFinder.FindNextLocalOpenPort(port); //server.UseHttps = true; server.LogToConsole(Grapevine.Interfaces.Shared.LogLevel.Warn).Start(); Console.WriteLine("WebHost:\thttp://" + server.Host + ":" + server.Port); stopWebServer.WaitOne(); server.LogToConsole().Stop(); server.ThreadSafeStop(); } }
public void StopsServer() { var stopped = new ManualResetEvent(false); var port = PortFinder.FindNextLocalOpenPort(1234); using (var server = new RestServer { Port = port }) { server.OnAfterStop += () => { stopped.Set(); }; server.Start(); server.IsListening.ShouldBeTrue(); server.ListenerPrefix.ShouldBe($"http://localhost:{port}/"); server.ThreadSafeStop(); stopped.WaitOne(300, false); server.IsListening.ShouldBeFalse(); } }
public void StopsServer() { const int maxTicksToStop = 300; var port = PortFinder.FindNextLocalOpenPort(); var ticksToStop = 0; using (var server = new RestServer { Connections = 1, Port = port }) { server.Start(); server.IsListening.ShouldBeTrue(); server.ListenerPrefix.ShouldBe($"http://localhost:{port}/"); server.ThreadSafeStop(); while (server.IsListening && ticksToStop <= maxTicksToStop) { ticksToStop += 1; Thread.Sleep(10); } server.IsListening.ShouldBeFalse(); } }