SQL Server 2008 R2 と一緒に SQL Server 2012 をインストールしました
問題なくローカルに接続できます
しかし、LAN 上の別の PC 経由で接続しようとすると、タイムアウトが発生します。
タイムアウトになりました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。
これがコードです
Dim queryString = "SELECT * FROM cities"
Using connection As New SqlConnection("data source=PCBOX\MSSERVER;initial catalog=MYDB;persist security info=True;user id=ABC;password=123;Connection Timeout=30")
Dim command As New SqlCommand(queryString, connection)
connection.Open()
Dim reader As SqlDataReader = command.ExecuteReader()
While reader.Read()
Console.WriteLine(String.Format("{0}, {1}", reader(0), reader(1)))
End While
End Using
Dim a = New MYDBEntities
Dim b = a.Cities.ToList
ここで、いくつかの興味深いメモ:
- LANからでもssmsから接続できました
- LAN 経由で ssms から接続すると、常に最初に ssms でタイムアウトが発生し、2 回目の試行でのみ即座に接続されます。
- コードを介してクエリを実行している場合にのみ、例外がスローされます。同じ例外は、sqlconnection または EF 経由です。
- Visual Studio自体は、EFウィザードを表示し、使用可能なテーブルを表示し、クラスを作成するなど、DBへの接続に問題はありません...
- LAN 上の ssms から一瞬で実行できるクエリを実行すると、すぐに 4 行 (それだけです) が返されます
問題は何ですか?
私は試した:
- 構成マネージャーで可能なすべてのクライアント プロトコルを有効にする
- 関連すると思われるサービス (エージェント、ブラウザなど) を再起動します。
- サーバーPC全体を再起動しました
- パスワードの変更
- SQL Server ログを調べます (間違った場所を探している可能性がありますが、試行された接続が表示されていないようです)
- Windows ファイアウォール ログ (C:\Windows\System32\LogFiles\Firewall\pfirewall.log) を調べると、空です。
- クライアント マシンに SQL Server 2012 をインストールする
- 接続文字列のポートを 1433 に設定します (どちらのバージョンも私が 1433 に設定していますが、大丈夫ですか?)。しかし、その後、別のエラーが発生します
SQL Server への接続を確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。接続先が一定時間後に適切に応答しなかったために接続の試行が失敗したか、接続されたホストが応答しなかったために確立された接続が失敗しました。