配置文件和 SqlConnection 初始化

本文关键字:初始化 SqlConnection 配置文件 | 更新日期: 2023-09-27 18:16:53

我有应用程序(我们称之为test.exe(,Window_Loaded中有以下代码:

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

仅此而已。应用程序工作没有问题。现在,如果我将一个空的配置文件 (test.config( 复制到同一目录,应用程序就会崩溃。

我没有将配置文件添加到应用程序项目中,它只是手动复制到同一目录并重命名为 .config 的空 xml 文件(此文件仅包含 xml 声明,稍后会使用(。

我能够通过try-catch捕获有关缺少root的异常,但是问题是应用程序无论如何都会在几秒钟后崩溃。

为什么 SqlConnection 会读取此配置文件?为什么即使在捕获异常后它也会使我的应用程序崩溃?

配置文件和 SqlConnection 初始化

我假设您的配置文件称为test.exe.config

我会想象应用程序在第一次尝试读取其配置文件时崩溃。 在您的情况下,这是您实例化SqlConnection实例时,但还有很多其他方式可能发生。

<configuration>元素添加到配置文件中。

编辑

重现此行为并检查堆栈跟踪。 DbConnectionPoolCounters正在访问一个System.Diagnostics.TraceSwitch,它需要从配置文件中读取配置信息。

您应该添加一个带有<configuration>元素的test.exe.config文件。 然后,配置系统将使用此文件并忽略您的空test.config文件。

尝试使用 sqlconnection(( 的参数化构造函数。 传递连接字符串以确保更安全。 您的应用程序将不依赖于