要在我的应用程序启动期间检查SQL Server实例是否存在/正在运行,我想建立与所需实例的连接。
我这样做:
SqlConnection conn = null;
conn = new SqlConnection("Data Source=AES0020\\ESQLSRV;Initial Catalog=MaterialData;Integrated Security=true;");
try
{
conn.Open();
}
catch (SqlException ex)
{
MessageBox.Show("Sql exception");
}
catch (Exception ex)
{
MessageBox.Show("Exception");
}
所以我的理解是,如果无法建立连接,我的try-catch块应该捕获异常。 但事实并非如此。在运行应用程序时,我总是在
处获得异常conn.Open();
类型' System.Data.SqlClient.SqlException'的第一次机会异常。 发生在System.Data.dll
中其他信息:与网络相关或特定于实例的错误 在建立与SQL Server的连接时发生。服务器是 没找到或无法访问。验证实例名称是否为 正确并且SQL Server配置为允许远程连接。 (提供商:共享内存提供商,错误:40 - 无法打开 连接到SQL Server)
但它永远不会碰到阻挡。
为什么会这样?
通常,有没有更好的方法来测试同一台机器上的SQL Server是否正在运行?
是的,我还查看过这篇文章No exception when opening SqlConnection in C#。这并不能解决我的问题。