【发布时间】:2014-01-27 04:22:28
【问题描述】:
在我的 C#/WPF/.Net 4.5 程序中,我试图在套接字上执行 Disconnect(),当我这样做时,我得到了一个
“System.Net.Sockets.SocketException”类型的第一次机会异常 发生在 System.dll 中
。 . .在 Visual Studio 输出窗口中。
我的代码包含在 try/catch 中,但它永远不会落在 catch 中。 . .
try
{
if (_TCPConn.Connected)
{
_TCPConn.Shutdown(SocketShutdown.Both);
_TCPConn.Disconnect(true); // SocketException
}
}
catch (Exception e)
{
. . .
}
到目前为止,Socket 工作正常 - 它用于与某些制造机械进行通信,并且所有这些东西都可以正常工作。我在有和没有 Shutdown() 的情况下都试过了,结果相同。如果我让我的程序在第一次机会异常之后继续运行,整个程序就会消失并退出调试器。然后输出窗口中的消息只是说
程序“[0xE6C] ProcFacTest.vshost.exe: Managed (v4.0.30319)”有 以代码 0 (0x0) 退出。
我如何找出造成这种情况的原因?
【问题讨论】:
-
在你的IDE中,点击顶部的Debug,Exceptions,然后展开“Common Language Runtime Exceptions”,找到“System.Net.Sockets”并勾选“Thrown”复选框。再次运行该应用程序,它应该会显示给您。
-
谢谢!这很有帮助!