0

我最近在我的 App.confg 文件中添加了一个配置部分。虽然我意识到该部分无效,但我的应用程序实际上运行了,直到它到达这一行:

this.udpClient = new UdpClient();

此时它给出了以下例外:

System.Configuration.ConfigurationErrorsException

留言:

"Configuration system failed to initialize"

和内部异常消息(相同类型的异常):

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

为什么实例化 UdpClient 会访问您的应用程序配置,为什么它会抛出配置异常,而不是 Socket 异常(带有内部配置异常),就像方法所声明的那样?

4

1 回答 1

2

它在创建 UdpClient 对象时尝试访问配置的原因是因为 UdpClient 和 TcpClient 类只是 Socket 类的包装器。Socket 类有一个配置部分,可以在其中存储套接字设置并从配置文件中读取。由于配置文件存在问题并且它无效,因此您在尝试在配置文件中查找该部分时收到了配置异常。这是有道理的,因为问题在于在创建底层 Socket 之前读取配置文件。

链接到套接字配置部分的 MSDN 信息

于 2011-10-19T17:36:56.160 回答