2011-12-09 140 views
2

虽然停止过程中,我补时AppDomain.UnhandledException事件以下异常。在Windows上最新的.NET 4.0 7.未处理IOException异常在PerformIOCompletionCallback

IsTerminating flag:True 
Unhandled exception: System.IO.IOException: The handle is invalid 

    at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) 
    at System.Threading.EventWaitHandle.Set() 
    at System.Net.LazyAsyncResult.ProtectedInvokeCallback(Object result, IntPtr userToken) 
    at System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped) 
    at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP) 

任何人都知道是什么原因造成的?如果同时有异步IO操作是杰出的套接字被置于可能发生在PerformIOCompletionCallback

+0

它是由一个无效的句柄引起的。通过仔细描述“停止一个过程”的含义来避免这种评论。 –

+0

校正:日志的再分析表明,它的发生或多或少出蓝色(未期间关机序列)。 我知道这是一个广泛的问题。我试图找出什么样的事件可能触发这种异常?例如,它是否必须是这个过程的内部? – Josh

+0

可能是任何东西,但是当一个进程由于句柄泄漏而消耗其句柄的配额时,这种问题往往会被诱发。在TaskMgr.exe,进程选项卡中可见。查看+选择列并勾选句柄。 –

回答

0

未处理的异常。
一旦操作完成后,它会尝试访问处置插座,这是不是心情很好打的成员。

内存转储,此异常期间创建的,可以在这里提供一些线索。 This blog post应该有助于在这方面进行清理。