SQLServerに接続するVB.NETアプリがあります。
最近、サーバーに障害が発生した場合に備えてデータベースミラーリングを追加しました。
もちろん、SQL Serverは失敗しましたが、VB.NETアプリはフェイルオーバーしていません。
コードでフェイルオーバーパートナーが接続文字列に指定されていないことがわかったため、接続文字列を次のように更新しました。
sConnectionString = "Data Source=PROD-SQL;Failover Partner=FAILOVER-SQL;Initial Catalog=DB;User ID=****;Password=******;"
オブジェクトはこのSqlClient.SqlConnection
接続文字列を受け入れますが、その.Open()
コマンドを呼び出すと、次のエラーで失敗します。
"A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)"
どうしてこれなの?イントラネットアプリは問題なくフェイルオーバーしました(DSNレス接続を使用するクラシックASP)。
アプリケーションは、正常にフェイルオーバーする前に、プライマリサーバーへの初期接続を少なくとも1回成功させる必要がありますか?
ありがとう!