Почему создание экземпляра UdpClient вызывает исключение ConfigurationException? - PullRequest
0 голосов
/ 19 октября 2011

Я недавно добавил раздел конфигурации в мой файл App.confg.Хотя я понимаю, что раздел был недействительным, мое приложение фактически работало до тех пор, пока не достигло этой строки:

this.udpClient = new UdpClient();

, после чего оно выдало следующее исключение:

System.Configuration.ConfigurationErrorsException

с сообщением:

"Configuration system failed to initialize"

и внутреннее сообщение об исключении (тот же тип исключения):

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

Почему создание экземпляра UdpClient обращается к конфигурации вашего приложения и почему вместо этого генерируется исключение конфигурацииИсключения Socket (с исключением внутренней конфигурации), как метод утверждает, что это будет?

1 Ответ

2 голосов
/ 19 октября 2011

Причина, по которой он пытался получить доступ к конфигурации при создании объекта UdpClient, заключается в том, что классы UdpClient и TcpClient являются только оболочками вокруг классов Socket.Класс Socket имеет раздел конфигурации для него, где параметры сокета могут храниться и считываться из файла конфигурации.Так как была проблема с файлом конфигурации, и он был недействительным, вы получили исключение конфигурации, когда он пытался найти этот раздел в файле конфигурации.Это имеет смысл, поскольку проблема заключалась в чтении файла конфигурации еще до того, как он смог создать базовый сокет.

Ссылка на информацию MSDN в разделе конфигурации сокетов

...