我有一个使用.Net remoting构建的应用程序。进行身份验证时,如果出现错误,我会在服务器上抛出异常。例外是可序列化的。但是当在服务器上抛出异常时,有时我会在客户端看到一条错误,指出“已建立的连接已被主机中的软件中止”。
这是我在尝试调试服务器时从windbg获得的堆栈跟踪。看起来远程处理框架正在这样做。关于套接字被关闭的原因以及如何处理这个问题的任何想法?
System.Net.Sockets.Socket.Close()
System.Runtime.Remoting.Channels.SocketHandler.Close()
System.Runtime.Remoting.Channels.SocketHandler.CloseOnFatalError(System.Exception的)
System.Runtime.Remoting.Channels.SocketHandler.ProcessRequestNow()
System.Runtime.Remoting.Channels.RequestQueue.ProcessNextRequest(System.Runtime.Remoting.Channels.SocketHandler)
System.Runtime.Remoting.Channels.SocketHandler.BeginReadMessageCallback(System.IAsyncResult)
System.Net.LazyAsyncResult.Complete(IntPtr的)
System.Net.ContextAwareResult.CompleteCallback(System.Object的)
System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object)
System.Net.ContextAwareResult.Complete(IntPtr的)
System.Net.LazyAsyncResult.ProtectedInvokeCallback(System.Object,IntPtr)
System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(UInt32,UInt32,System.Threading.NativeOverlapped *)
System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32,UInt32,System.Threading.NativeOverlapped *)