发生了mscorlib.dll的PingException [英] PingException occurred mscorlib.dll

查看:66
本文介绍了发生了mscorlib.dll的PingException的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试从.csv文件中读取ip地址并使用PingAsync类ping这些地址。但是我在以下行中获得了以上异常。





Ping方法

I'm trying to read ip address from .csv file and ping those addresses using PingAsync class. But I'm getting above exception in the following line.


Ping Method

private static async Task AsyncPingTask(List<string> ipaddress)
        {
            try
            {
                Console.WriteLine("Ping Started");
                StringBuilder pingStringBuilder = new StringBuilder();


                    var pingTasks = ipaddress.Select(ip =>
                    {
                        using (var ping = new Ping())
                        {
                            return ping.SendPingAsync(ip);
                        }
                    }).ToList();

                    Console.WriteLine("Ping Completed");

                    await Task.WhenAll(pingTasks);


                    foreach (var pingReply in pingTasks)
                    {
                        pingStringBuilder.Append(pingReply.Result.Address);
                        pingStringBuilder.Append("-->");
                        pingStringBuilder.Append(pingReply.Result.Status);
                        pingStringBuilder.Append("-->");
                        pingStringBuilder.Append(pingReply.Result.RoundtripTime.ToString());
                        pingStringBuilder.AppendLine();
                    }
                    Console.WriteLine(pingStringBuilder.ToString());
                    pingStringBuilder.Clear();                

            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message.ToString());
                throw;
            }

            }







主要方法






Main Method

public static void Main()
        {
            List<string> address = new List<string>();
            Task t = Task.Run(() =>
            {
                var reader = new StreamReader(File.OpenRead(Environment.CurrentDirectory+@"\address.csv"));
                while (!reader.EndOfStream)
                {
                    var lines = reader.ReadLine();
                    var values = lines.Split(';');
                    address.Add(values[0]);
                }                
            });


            Console.WriteLine("List COunt is {0}",address.Count);
            Stopwatch timeSpan=Stopwatch.StartNew();


            t.Wait();            


            AsyncPingTask(address).Wait();

            Console.WriteLine(timeSpan.ElapsedMilliseconds);                        
            Console.ReadLine();
        }





如果我有任何错误请指导我。



If I done any mistake please guide me.

推荐答案

只是为了解决问题:请参阅:

https://msdn.microsoft.com/en-us/library/system.net.networkinformation.pingexception%28v=vs.110%29.aspx [< a href =https://msdn.microsoft.com/en-us/library/system.net.networkinformation.pingexception%28v=vs.110%29.aspxtarget =_ blanktitle =New Window> ^ ],

https://msdn.microsoft.com/en-us/library/system.net.networkinformation.ping%28v=vs.110%29.aspx [ ^ ] 。



在关于例外的文档中,请注意:应用程序应检查内部异常。这是一般的异常处理的一个很好的建议(然后你必须以递归方式检查它们),但在这种情况下必不可少,因为它给出了根本原因的异常信息。



-SA
Just to close the issue: please see:
https://msdn.microsoft.com/en-us/library/system.net.networkinformation.pingexception%28v=vs.110%29.aspx[^],
https://msdn.microsoft.com/en-us/library/system.net.networkinformation.ping%28v=vs.110%29.aspx[^].

In the documentation on the exception, pay attention: "Application should check the inner exception". This is a good advice on exception handling in general (and then you have to check them all, recursively), but essential in this case, because it gives your the root-cause exception information.

—SA


这篇关于发生了mscorlib.dll的PingException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆