我正在尝试设置一种方法,该方法将尝试首先在默认端口(1433)上连接到 SQL Server,然后在失败时在其他端口(例如 7777)上连接。
我想避免重建连接字符串并在失败时尝试再次连接,因为此方法将按照配置的时间间隔执行,并且我希望消除尽可能多的开销。
我尝试了以下方法(由ConnectionStrings提供)
public void EstablishConnection()
{
string ConnectionString = "Data Source=127.0.0.1; Failover Partner=127.0.0.1,7777; Initial Catalog=foo;Connection Timeout = 3; Persist Security Info =True;User ID=<id>;Password=<password>";
try
{
SqlConnection Connection = new SqlConnection(ConnectionString);
Connection.Open();
}
catch (SqlException)
{
// Connection failed
}
}
Run Code Online (Sandbox Code Playgroud)
但根据这篇文章我的测试,它并没有按照我的预期方式工作。
我可以通过执行以下操作轻松解决此问题:
public void EstablishConnection()
{
string ConnectionString = "Data Source=127.0.0.1;Initial Catalog=foo;Connection Timeout = 3; Persist Security Info =True;User ID=<id>;Password=<password>";
try
{
SqlConnection Connection = new SqlConnection(ConnectionString);
Connection.Open();
}
catch (SqlException)
{ …Run Code Online (Sandbox Code Playgroud)