调试代码的错误信息:
ESP/REG Object Name
192FEE8C 12ccb3c8 System.AccessViolationException
192FEEEC 12ccb3c8 System.AccessViolationException
192FEEFC 12ccb3c8 System.AccessViolationException
192FF048 12cc9a04 System.Net.SafeCloseSocket
192FF074 12cc999c System.Net.Sockets.Socket
192FF62C 022fa368 System.Threading.OverlappedData
OS Thread Id: 0x1c3c (40)
Child SP IP Call Site
192ff514 6821baf7 System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)
192ff5f8 022fa390 [GCFrame: 192ff5f8]
192ff700 022fa390 [DebuggerU2MCatchHandlerFrame: 192ff700]
0:040> !clrstack -p 12ccb3c8
OS Thread Id: 0x1c3c (40)
Child SP IP Call Site
192ff514 6821baf7 System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)
PARAMETERS:
errorCode = <no data>
numBytes = <no data>
pOVERLAP = <no data>
猜测:应该是在Socket.Close()内部调用Dispose() 的时候触发的异常。
请不要猜。还是先找到错误在哪。http://q.cnblogs.com/q/34000/ 好像是类似于这个答案。
没有找到错误的代码,这个是dump文件出来的信息。
@KissFU: 主要是不是很清楚问题是什么。看这个异常好像是说,读写内存错误。