我正在尝试对Windows窗体应用程序中的服务器进行ping操作,但是当我的程序运行时,我的计算机上有内存转储。非常非常奇怪。
在我的方法中我只有:
private void CheckServer()
{
this.txResponse.Text = "";
IPAddress IpAdress = IPAddress.Parse("anAdress");
Ping ping = new Ping();
PingReply pingToReply = ping.Send(IpAdress);
if (pingToReply.Status == IPStatus.Success)
txResponse.Text = pingToReply.Status.ToString();
}
我真的不明白发生了什么。 我在Windows 8上使用Visual Studio 2012和.NET Framework 4.5。如果需要更多信息,请告诉我。
答案 0 :(得分:0)
验证IP地址的解析是否成功;否则检查CheckServer方法之外的周围处理。
答案 1 :(得分:0)
啊,当代码完全没有问题的时候,编程程序爆炸的乐趣...(你的代码看起来很好,除了在它周围放一个try / catch块)
这可能是硬件问题(内存,磁盘等),坏dll,或者夜间爆炸的任何事情。我假设您已尝试重新启动计算机,并在DOS提示符下ping服务器。如果不这样做。
您可以尝试的一件事是直接使用您选择的命令行/ ip同步或异步调用ping.exe,请参阅http://www.codeproject.com/Articles/25983/How-to-Execute-a-Command-in-C然后解析输出以获得所需内容(以#开头的行) 34;来自"或"请求超时的回复。"甚至%损失线。
要尝试的另一件事是完全绕过c#Ping
和PingReply
调用并使用网络套接字和计时器,请参阅http://sourceforge.net/projects/pingutil/?source=typ_redirect特别是ping.cs文件。
这些解决方案可以让您潜在地解决问题,但它并不一定能解决手头的问题,而这似乎与您提供的代码无关。
好的,其他想法...... 1)在项目上进行全部重建2)尝试使用旧版本的.NET进行编译3)创建一个新项目并将源复制到新创建的文件中。 4)在另一台计算机上运行该项目,看看是否得到相同的结果。可能会或可能不会生成的任何异常错误都不应导致核心转储。
另一种选择是分析核心转储,对于应用程序,请参阅:http://sourceforge.net/projects/core-analyzer/并查看 Tool for analyzing java core dump
更糟糕的是,您可能需要重新加载Visual Studio和/或.NET。