发送 ping 让我的 Windows 8.1 机器崩溃

Sending ping gets my Windows 8.1 machine to crash

我有一个 C# windows 服务应用程序,它在“foreach”循环中插入以下代码(我有大约 300 个地址要检查) 确定一个 IP 地址是否可以通过互联网访问,不幸的是我得到了蓝屏 死神,我在 Visual Studio 2019 调试时我的电脑崩溃了,错误代码: 进程已锁定页面

public bool IsReachablePing()
        {
            try
            {
                using Ping p = new();
                PingReply reply = p.Send(IpAddress);
                if (reply.Status == IPStatus.Success) { return true; }
                return false;
            }
            catch (Exception) { return false; }
        }

我怎样才能让它对机器更友好,以避免服务器崩溃,以防万一 我发布服务? 我害怕 post 服务器上的这项服务

无法通过修改您的代码来解决此问题,此问题是由调试期间发送 ping 引起的。您可以使用 System.Diagnostic.Debugger.IsAttached 属性 来确定调试器是否已连接并禁用 ping。在这里阅读更多:C# program causes bluescreen?

using (Ping p = new Ping())
{
  // other code    
}

你用错了'using'。变量 p 在你使用它之前就已经被释放了。