我在Window_Loaded中有以下代码的应用程序(我们称之为 test.exe ):
private void Window_Loaded(object sender, RoutedEventArgs e)
{
SqlConnection sqlConnection = new SqlConnection();
}
没有更多,也没有更少。应用程序没有问题。 现在,如果我将空配置文件( test.config )复制到同一目录,则应用程序崩溃。
我没有将配置文件添加到应用程序项目中,只是将空的xml文件手动复制到同一目录并重命名为.config(此文件仅包含xml声明,稍后将使用)。
我能够通过try-catch捕获有关缺少root的异常,但问题是应用程序在几秒钟之后崩溃。
为什么SqlConnection会读取此配置文件?为什么即使在捕获异常后它也会崩溃我的应用程序?
答案 0 :(得分:0)
尝试使用sqlconnection()的参数化构造函数。传递你的连接字符串更安全的一面。您的申请将不依赖于
答案 1 :(得分:0)
我假设您的配置文件名为test.exe.config
。
我认为应用程序首次尝试读取其配置文件时会崩溃。在您的情况下,这是您实例化SqlConnection
实例时,但还有很多其他方法可能发生。
在配置文件中添加<configuration>
元素。
修改强>
重现此行为并检查堆栈跟踪。 DbConnectionPoolCounters
正在访问System.Diagnostics.TraceSwitch
,需要从配置文件中读取配置信息。
您应该添加带有test.exe.config
元素的<configuration>
文件。然后,配置系统将使用此文件并忽略您的空test.config
文件。