3

非常に奇妙な状況が発生しています。ここにいる誰かが理由を知っていることを願っています。

デフォルト ポート 1433 のすべてのポートで TCP/IP を有効にしています。

すべてのテストは、SQL Server Management Studio および私のプログラムと一致しています。

これは機能します:

  • コンピューター名\インスタンス名
  • 127.0.0.1
  • 127.0.0.1,1433
  • 192.168.1.100
  • 192.168.1.100,1433

これは動作しません:

  • 127.0.0.1\インスタンス名

注: ポート 1433 で 127.0.0.1 に telnet で接続できるため、ファイアウォールに関連していないことはわかっています。

注 2: テストは Management Studio と一致しているため、接続文字列は重要ではありませんが、とにかく指定します。server={0};Integrated Security=True;Database=MyDatabase

MSDN を読んでいると、IP アドレスを介してインスタンス名に接続できるはずです。

何が起きてる?

4

1 に答える 1

9

名前付きSQL インスタンスは、デフォルトでランダムなポートをリッスンします。SQL Browserサービスを開始する必要があります。これは 1434 で UDP をリッスンし、クライアントに真のリッスン ポートを指示するインスタンス検出要求に応答します。また、ファイアウォールがプロセス名に基づいて穴を開けることを許可する必要があります。これにより、SQL は任意のポートでバインドできるようになります。

それ以外の場合は、名前のないポートで名前付きインスタンスを明示的に強制する必要があります。

于 2009-10-23T19:25:08.240 に答える