実稼働環境では、"Microsft OLE DB Provider for SQL Server" UDL に対してポート 1433 を明示的に指定する必要があることがわかりました。このような:
Provider=SQLOLEDB.1;User ID=USER;Data Source=IP,1433
ポートが指定されていない場合、エラーは次のようになります。
Test connection failed because of an error in initializing provider.
[DBNETLIB][ConnectionOpen (Invalid Instance()).]Invalid connection.
同じ環境ですが、SQL Native Client 10.1 では、1433 を明示的に指定する必要はありません。
Provider=SQLNCLI10.1;Integrated Security="";Persist Security Info=False;
User ID=USER;Data Source=IP;...
開発中の SQL Server に対する同じテストでは、OLE DB UDL は指定された既定のポートを必要としません。
デフォルトのポートを明示的に指定する必要があるのは、どのような状況ですか?
運用システムはクラスタ化されており、プライマリ アクティブとセカンダリ パッシブ、および接続先のクラスタ サーバーがあります。開発環境は単一の SQL Server 2008 です。その他の違いはわかりません。これが関係していると思うなら、なぜそれが問題になるのでしょうか?
クライアントから SQL Server (UDL が作成された場所) へ: Windows Server 2008 R2 Standard MDAC 2.8
すべての SQL データベース サーバー: Microsoft SQL Server 2008 (SP1) - 10.0.2734.0 (X64) Windows Server Enterprise Service Pack 2
助けてくれてありがとう。