4

実稼働環境では、"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

助けてくれてありがとう。

4

2 に答える 2

6

これは、クラスタリングに固有の既知の問題です。その理由は、クラスタ マネージャが 1 つの IP/ポートで応答してから、別のポートで通信する可能性がある実際の (物理) サーバーに通信をハンドオフするためです。修正がないように見えますが、回避策は既に見つかりました。
詳細については、次の Microsoft Technet の記事を参照してください: http://support.microsoft.com/kb/318432

于 2013-08-30T13:15:33.193 に答える