private async void EndGetRequest(HttpListenerContext context, System.Net.Http.HttpListener listener) { try { using (context.Response) HandleRequest(context); } catch (Exception ex) { Console.Write("Exception in listener: {0}{1}", Environment.NewLine, ex); } finally { try { if (listener.IsListening) { context = await listener.GetContextAsync(); EndGetRequest(context, listener); } } catch { Stop(); } } }
/// <summary> /// Starts listening for incoming connections /// </summary> public async override void Start() { if (Running) { return; } #if NETSTANDARD1_5 listener = new System.Net.Http.HttpListener(address, port); listener.Start(); var context = await listener.GetContextAsync(); EndGetRequest(context, listener); #else listener = new System.Net.HttpListener(); listener.Prefixes.Add(prefix); listener.Start(); listener.BeginGetContext(EndGetRequest, listener); #endif }