System.Net.Dns的型別初始設定式發生例外狀況

在公司自己的ERP系統開發過程中遇到

System.Net.Dns的型別初始設定式發生例外狀況

問題:

在一個程序中用到了  
  this.ttbHostName.Text=System.Net.Dns.GetHostName();  
  在開發機器上一切都正常,但是打包在測試機器上安裝後,一運行到這一句,就發生錯誤,錯誤信息如下:  
  錯誤訊息:  
  {System.Net.Dns   的型別初始設定式發生例外狀況。}  
  {System.Net.Sockets.Socket   的型別初始設定式發生例外狀況。}  
  {無法在通訊端上執行操作,因為系統緩衝區空間不足,或是佇列已滿。}  
  我試了好長時間才從一大堆代碼中确定是這句有問題,這句是我原以為最不會出問題的,用的System.dll是NET框架自帶的,GetHostName也是靜態方法.  
  有誰知道原因是什麼呀?

1楼 

自已先UP一下.
2楼 

很有可能是测试的机器没有指定dns,你可以自己指定一下Preferred   DNS   server,应该就好了。
3楼 

有需要指定DNS嗎?  
  我有做過測試,我有一台機器,沒有加入任何網絡(也當然就沒有DNS),我用System.Net.Dns.GetHostName()一樣可以取得本身這台機器的機器名呀.  
  那如果在指定DNS要如何指定呀?
4楼 

哎哟,繁体的错误提示看着晕晕的,只看的懂简体的和英文的。。。繁体好多名词生的很。都不知道是什么,帮不了你。  
   
  顶起,后面用繁体的兄弟们上  
   
 
5楼 

沒辦法,在港資做,用得就是繁體.
6楼 

奇怪,是不是其他代码连带的?有完整的代码吗?
7楼 

是不是其他代码连带的?---給了我很大的提示  
  我做的是一個Remoting結構的三層式架構的程序.  
  我又仔細看了一下錯誤提示:  
  {引動過程的目標傳回例外狀況。}{System.Net.Dns   的型別初始設定式發生例外狀況。}{System.Net.Sockets.Socket   的型別初始設定式發生例外狀況。}{無法在通訊端上執行操作,因為系統緩衝區空間不足,或是佇列已滿。}  
  發現Dns的錯誤是發生在Socket錯誤之後,我將這個程序的客戶端程序也做了一個安裝測試,發現客戶端在連Remoting服務器時一樣會出現這個一模一樣的問題,這樣我心里就有底了,因為我在客戶端沒有使用到任何Dns相關的代碼,所以我就猜想可以是這台測試機器本身網絡方面有問題,所以我又分別找了台XP和win2000profession的機器來做測試,發現全部正常,這說明就是那台測試機器本身有問題(至于是什麼問題,就沒清楚了.)還好客戶端可自由選擇是使用三層結構還是C/S結構,當選擇使用C/S結構時,完全不使用到REMOTING,也就不會出現這個問題了,基本上,在使用上不會出現那種使用不了的致命錯誤了.
8楼 

我碰到类似的问题,把机器中的网络协议netbios删除就解决了。
 

你可能感兴趣的:(C#)