我有一个c# windows服务应用程序,它在一个"foreach"循环(我有大约300个地址要检查)来确定IP地址是否可以通过互联网访问,不幸的是,我得到了蓝屏死亡,当我在Visual Studio 2019上调试这个时,我的PC崩溃了,错误代码:进程已锁定页面
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; }
}
我怎样才能使这对机器更友好,以避免服务器崩溃的情况下我发布服务?我不敢把这个服务放到服务器上
没有办法通过修改代码来修复这个问题,这个问题是由调试期间发送ping引起的。您可以使用System.Diagnostic.Debugger.IsAttached属性来确定调试器是否已连接并禁用ping。点击这里阅读更多:c#程序导致蓝屏?
using (Ping p = new Ping())
{
// other code
}
你用错了using。在使用变量p之前,它已经被处理掉了。