防止TcpClient.Connect的第一次机会异常

时间:2015-04-16 14:59:23

标签: c# exception-handling tcp-ip

我的代码中有一个非常令人沮丧的First Chance Exception消息。

  

System.dll中出现'System.Net.Sockets.SocketException'类型的第一次机会异常   附加信息:无法建立连接,因为目标计算机主动拒绝它“

private void RunThread()
{
    do
    {
        TcpClient client = null;
        StreamWriter writer = null;

        try
        {
            // Connect
            client = new TcpClient();
            client.Connect(m_Hostname, m_PortNum);

            if (client.Connected) //No host available? EXCEPTION!
            {
                //Do stuff and exit listener thread
            }


        }
        catch (Exception e)
        {
            //dont care
        }
    } 
}

现在简要解释一下。有问题的代码坐在一个帖子中

1)这是一个令人高兴的错误!我们可以继续它。但问题是我必须禁用第一次机会异常(其他人也是如此),以便应用程序继续运行。

2)好的,我们假设我们禁用错误。多数民众赞成,但因为在一个线程和不断遇到异常。我们得到这个。想要查看调试窗口时会非常烦人。

  

System.dll中出现'System.Net.Sockets.SocketException'类型的第一次机会异常      System.dll中发生了'System.Net.Sockets.SocketException'类型的第一次机会异常      System.dll中发生了'System.Net.Sockets.SocketException'类型的第一次机会异常      System.dll中发生了'System.Net.Sockets.SocketException'类型的第一次机会异常      System.dll中发生了'System.Net.Sockets.SocketException'类型的第一次机会异常      System.dll中发生了'System.Net.Sockets.SocketException'类型的第一次机会异常      System.dll中发生了'System.Net.Sockets.SocketException'类型的第一次机会异常      System.dll中发生了'System.Net.Sockets.SocketException'类型的第一次机会异常      System.dll

中发生了'System.Net.Sockets.SocketException'类型的第一次机会异常

问题

  1. 我可以在不抛出异常的情况下轮询目标主机吗?

  2. 如果没有,我可以禁用此断言吗?有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

您是否尝试过DebuggerNonUserCode属性? https://msdn.microsoft.com/en-us/library/system.diagnostics.debuggernonusercodeattribute.aspx它应该阻止调试器逐步执行该方法,以便您不会收到通知。