我最近在App.confg文件中添加了一个配置部分。虽然我意识到该部分无效,但我的应用程序实际上已经运行,直到达到这一行:
this.udpClient = new UdpClient();
此时它给出了以下例外:
System.Configuration.ConfigurationErrorsException
带有消息:
"Configuration system failed to initialize"
和内部异常消息(相同类型的异常):
"Unrecognized configuration section AppDefaults. (<filename goes here>)"
为什么实例化UdpClient访问你的应用程序配置,为什么它会抛出一个配置异常,而不是一个Socket Exception(带有内部配置异常),就像方法声明它一样?
答案 0 :(得分:2)
在创建UdpClient对象时尝试访问配置的原因是因为UdpClient和TcpClient类只是Socket类的包装器。 Socket类有一个配置部分,可以从配置文件中存储和读取套接字设置。由于配置文件存在问题且无效,因此在尝试在配置文件中查找该部分时收到配置异常。这是有道理的,因为问题在于它甚至在创建底层Socket之前读取配置文件。