System.Net.InternalException: System error.
at System.Net.HttpWebRequest.CheckWriteSideResponseProcessing()
at System.Net.ConnectStream.ProcessWriteCallDone(ConnectionReturnResult retur
nResult)
at System.Net.HttpWebRequest.WriteCallDone(ConnectStream stream, ConnectionRe
turnResult returnResult)
at System.Net.ConnectStream.CallDone(ConnectionReturnResult returnResult)
at System.Net.ConnectStream.CloseInternal(Boolean internalCall, Boolean abort
ing)
at System.Net.ConnectStream.System.Net.ICloseEx.CloseEx(CloseExState closeSta
te)
at System.Net.ConnectStream.CloseInternal(Boolean internalCall)
at System.Net.HttpWebRequest.EndWriteHeaders_Part2()
at System.Net.HttpWebRequest.EndWriteHeaders(Boolean async)
at System.Net.HttpWebRequest.WriteHeadersCallback(WebExceptionStatus errorSta
tus, ConnectStream stream, Boolean async)
at System.Net.ConnectStream.WriteHeadersCallback(IAsyncResult ar)
at System.Net.LazyAsyncResult.Complete(IntPtr userToken)
at System.Net.ContextAwareResult.Complete(IntPtr userToken)
at System.Net.LazyAsyncResult.ProtectedInvokeCallback(Object result, IntPtr u
serToken)
at System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(UInt32
errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped)
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32
errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)
这是由未处理的异常处理程序捕获的。它只会偶尔发生,但会带来灾难性的后果。任何想法如何真正抓住这一个人?
更新
现在很明显,这只会在CPU处于极高负载时才会出现。
答案 0 :(得分:4)
如果在I / O完成线程上抛出此异常,基本上没有您的任何干预,那么我倾向于使用Microsoft Connect打开一张票。推理:你启动了一个异步I / O操作,它会抛出一个异常,可能是由于它在线程池上的连接断开 - 你无法捕获它。这意味着在异步操作期间断开连接可能会导致您的应用程序失效,而您无法对其执行任何操作。听起来像是框架中的一个错误。
临时解决方法可能是在应用配置的<legacyUnhandledExceptionPolicy enabled="1"/>
部分放置<runtime>
。这将恢复到.NET 1.0 / 1.1行为,其中在主线程之外的另一个线程上抛出的异常不会取消应用程序。另见:http://msdn.microsoft.com/en-us/library/ms228965.aspx
答案 1 :(得分:3)
我们遇到了同样的问题,并且能够从此获得Microsoft支持方面的帮助。对我们来说,这是由我们禁用Nagle算法导致的winsock api中的竞争条件引起的。如果您发现自己处于相同的情况,可能需要查看我的博文:ASP.NET Serialization Exception Crash, winsock and Nagle Algorithm。
答案 2 :(得分:-1)
听起来你的连接断开了。如果您使用异步调用,则尤其如此。每次在连接断开时尝试访问对象时,都会出现这样的错误。这是一篇SO文章,它有更多关于它的内容:
What is this error? System.Net.InternalException in Net.HttpWebRequest.SetAndOrProcessResponse