我寫了一個小測試程序,使用Dns.GetHostAddresses
來解析主機名。如果我輸入了一個不存在的主機名,它會拋出一個SocketException
,並且該消息將是No such host is known
。
我喜歡這個,因爲錯誤信息足夠小,可以放入我的用戶界面,並直接指向這一點。GetHostAddresses不同的錯誤代碼
現在我簡直複製的代碼粘貼到一個稍大的項目,但是這一次,當我進入我在我的測試項目做了完全相同的主機名,它拋出一個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
正在拋出正確的異常。
如果有人能告訴我爲什麼它的行爲如何,以及如何避免這種情況,那就太好了。
既是小測試項目又是其他項目構建到同一版本的.NET? – dgvid 2012-08-02 15:50:00
@dgvid是。 (15個) – Josh 2012-08-02 15:51:42
這兩個項目是否在同一臺機器\網絡域上運行?第一個錯誤意味着根本找不到主機;第二個錯誤表示主機存在,但數據不完整(即沒有定義A記錄)。 – 2012-08-02 16:01:06