2011-10-19 30 views
0

我最近添加了一個配置部分到我的App.confg文件。雖然我知道的部分是無效的,我的應用程序居然跑,直到它觸及這一行:爲什麼UdpClient實例化會導致ConfigurationException?

this.udpClient = new UdpClient(); 

此時它提供了以下異常:

System.Configuration.ConfigurationErrorsException 

與消息:

"Configuration system failed to initialize" 

和內部異常消息(相同類型的異常):

"Unrecognized configuration section AppDefaults. (<filename goes here>)" 

爲什麼實例化一個UdpClient訪問你的應用程序配置,爲什麼它會拋出一個配置異常,而不是一個Socket異常(帶有內部配置異常),就像這個方法聲明的那樣?

回答

2

它創建UdpClient對象時試圖訪問配置的原因是因爲UdpClient和TcpClient類只是圍繞Socket類的包裝。 Socket類有一個配置部分,它可以在配置文件中存儲和讀取套接字設置。由於配置文件出現問題,並且該配置文件無效,因此在嘗試在配置文件中查找該節時收到配置異常。這是有道理的,因爲問題是在創建底層套接字之前讀取配置文件。

Link to MSDN info on Sockets Configuration Section

相關問題