Dns.GetHostAddresses
我写了一个用于解析主机名的小测试程序。如果我输入了一个不存在的主机名,它会抛出 aSocketException
并且消息是No such host is known
.
我喜欢这个,因为错误消息足够小,可以放入我的 UI 中,而且直截了当。
现在我从字面上将代码复制并粘贴到一个更大的项目中,但是这次当我输入与我在测试项目中完全相同的主机名时,它会抛出一个SocketException
但消息设置为The requested name is valid, but no data of the requested type was found
每个程序中的两个堆栈跟踪都是相同的,但第一个错误是WSAHOST_NOT_FOUND
第二个错误所在的位置WSANO_DATA
。
我可以只输出自己的错误消息,但我想知道为什么每次都会抛出不同的错误?代码没有区别。
此外,似乎无论我运行每个程序多少次,它们都不断输出相同的错误消息。这不是交替或任何东西。
==================================================== ==========================
好吧,我弄清楚了导致问题的原因。
我添加了 Pcap.Net 作为参考,并将其包含在我的项目中,using PcapDotNet.Core;
无论如何,在我将其注释掉之后,Dns.GetHostAddresses
抛出了正确的异常。
如果有人能告诉我为什么它会这样,以及如何解决它,那就太好了。