0

我在 Window_Loaded 中有包含以下代码的应用程序(我们称之为test.exe ):

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

不多也不少。应用程序没有问题。现在,如果我将一个空配置文件 ( test.config ) 复制到同一目录,应用程序将崩溃。

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

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

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

4

2 回答 2

0

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

于 2013-06-04T08:59:31.497 回答
0

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

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

<configuration>在配置文件中添加一个元素。

编辑

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

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

于 2013-06-04T09:18:33.357 回答