現在、次の接続文字列を使用してデータベースに接続しています (データベースは ServerIP と同じサーバー上にあります)。
String constr = "Data Source=ServerIP,1433;Network Library=DBMSSOCN;Initial
Catalog=dbName;User ID=dbUserID;Password=dbUserPassword";
これは、asp.net で使用すると正常に接続されます。(手動で dbUserId を作成し、SQL サーバー管理スタジオから dbUserPassword を割り当てました。dbUserId はデータベース「dbName」の所有者です)
同じデータベースに接続する必要がある別の PC に Java Swing アプリケーションがあります。C: にある sqljdbc4.jar を使用しています。私のクラスパスには「.;C:\sqljdbc4.jar」というエントリがあります。接続を実現するために、次のコード行を使用しています。
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://ServerIP:1433;databaseName=dbName";
String user = "dbUserID";
String pass = "dbUserPassword";
Connection connection = DriverManager.getConnection(url, user, pass);
ただし、「Connection connection =DriverManager.getConnection(url, user, pass);」という行で例外が発生します。: "ホスト "ServerIP"、ポート 1433 への TCP/IP 接続に失敗しました。エラー: "接続がタイムアウトしました。接続プロパティを確認します。SQL Server のインスタンスがホスト上で実行されており、ポートで TCP/IP 接続を受け入れていることを確認してください。ポートへの TCP 接続がファイアウォールによってブロックされていないことを確認してください。」
Windowsファイアウォールがオフになっていることを確認しました(また、ホームネットワークとパブリックネットワークの両方でMSSQLSERVERポート1433 tcpの例外が追加されています)。SQL Server Management Studio から、SQL Server と SQL Server Express の両方で TCP/IP を有効にしました。
接続文字列またはSQLサーバーの接続設定に問題がある可能性があることを誰かに教えてもらえますか?