使用Ping .net进行内存转储

时间:2015-06-19 18:28:51

标签: c# .net server ping windows-applications

我正在尝试对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。如果需要更多信息,请告诉我。

2 个答案:

答案 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#PingPingReply调用并使用网络套接字和计时器,请参阅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。