Файл конфигурации и инициализация SqlConnection

У меня есть приложение (давайте назовем это test.exe) со следующим кодом в Window_Loaded:

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    SqlConnection sqlConnection = new SqlConnection();
}

Не больше, не меньше. Приложение работает без проблем. Теперь, если я скопирую пустой файл конфигурации (test.config) в тот же каталог, приложение вылетает.

Я не добавил конфигурационный файл в проект приложения, это просто пустой XML-файл, скопированный вручную в тот же каталог и переименованный в.config (этот файл содержит только декларацию XML и будет использоваться позже).

Я могу поймать исключение об отсутствии рута с помощью try-catch, но проблема в том, что приложения все равно вылетают через несколько секунд.

Почему SqlConnection читает этот файл конфигурации? И почему оно вылетает из моего приложения даже после отлова исключения?

2 ответа

Решение

Я предполагаю, что ваш файл конфигурации называется test.exe.config,

Я хотел бы представить, что приложение падает, когда оно впервые пытается прочитать свой файл конфигурации. В вашем случае это когда вы создаете SqlConnection например, но есть много других способов, которыми это могло бы произойти.

Добавить <configuration> элемент в ваш файл конфигурации.

РЕДАКТИРОВАТЬ

Воспроизводил это поведение и исследовал трассировку стека. DbConnectionPoolCounters получает доступ к System.Diagnostics.TraceSwitch, который должен прочитать информацию о конфигурации из файла конфигурации.

Вы должны добавить test.exe.config файл с <configuration> элемент. Система конфигурации будет использовать этот файл и игнорировать ваш пустой test.config файл.

Попробуйте использовать параметризованный конструктор sqlconnection(). передать строку подключения для более безопасной стороны. Ваше приложение не будет зависеть от

Другие вопросы по тегам