I am using HttpListener and using BeginGetContext to get my context object. I want to cleanly close my HttpListener, but if I try to do Close on the listener, I get an exception and this causes my program to exit.
using System; using System.Net; namespace Sandbox_Console { class Program { public static void Main() { if (!HttpListener.IsSupported) { Console.WriteLine("Windows XP SP2 or Server 2003 is required to use the HttpListener class."); return; }
The program throws an exception in listener.Close() , however the error is never displayed in Visual Studio, the only note I get is the following on the Debug output screen:
The first random error occurred in System.dll such as "System.ObjectDisposedException" The program '[2568] Sandbox Console.vshost.exe: Managed (v4.0.30319)' exited with code 0 (0x0).
I managed to get real performance from Event Viewer windows
Application: Sandbox Console.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.ObjectDisposedException
Stack:
at System.Net.HttpListener.EndGetContext (System.IAsyncResult)
at Sandbox_Console.Program.Context (System.IAsyncResult)
at System.Net.LazyAsyncResult.Complete (IntPtr)
at System.Net.ListenerAsyncResult.WaitCallback (UInt32, UInt32, System.Threading.NativeOverlapped *)
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback (UInt32, UInt32, System.Threading.NativeOverlapped *)
What do I need to do so that I can close my HttpListener cleanly?
Scott Chamberlain
source share