ネットワーク上のSQLサーバーに手動で接続しようとすると問題が発生します。SqlClient経由のSql接続文字列
web APIには正常に動作するconn文字列があります。VS2015 winformsプロジェクトを使用してVSツールを使用して接続をテストして接続するように設定しましたが、これも正常に動作します。
しかし、私はSQLconnection経由で接続しようとすると失敗し、サーバーが見つからない、またはアクセスできないと表示されます。だから、HERESにテストコード
...string connectionString = @"Data Source=test1\test1;Initial Catalog=my_test;Integrated Security=True;";
using (SqlConnection connection =
new SqlConnection(connectionString))
{
// Create the Command and Parameter objects.
SqlCommand command = new SqlCommand("", connection);
// Open the connection in a try/catch block.
// Create and execute the DataReader, writing the result
// set to the console window.
try
{
connection.Open();
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine("\t{0}\t{1}\t{2}",
reader[0], reader[1], reader[2]);
}
reader.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadLine();
}
は今、私は単に接続を確立するために必要な結果か何か気には本当にいけません。 Web APIが動作し、DBへの接続用のVSツールがうまく動作するとき、なぜこのエラーをスローするのかわかりません。
私はサーバーをチェックし、名前付きパイプを有効にするだけで確認しました。
アイデア?
編集:私はキャッチエラー...
{"A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)"}
は接続を開こうとすると、約15秒後に起こります。 これはconnectiinの文字列です。私は、SQLツールで使用されているものとまったく同じ文字列を試しています。これを行ったので、有効な文字列があることが分かりました。
ODBC接続も同じメッセージで落ちます。
私はmachinbeからポート1433を聞くことができますが、サーバーがリッスンしていないことを確認しています。 しかし、動的ポートには41934までの範囲の動的ポートに設定されているので、動的ポートにもかかわらずリッスンevenbとは言えません。
EDIT2:ドライバ...ちょうど同じコードを試して、すぐに働いた...
これは私が感じる未知の領域に潜り込んでいます。統合セキュリティは、ローカルログインのために使用されている
string connectionString = @"Data Source=test1\test1;Initial Catalog=my_test;Integrated Security=True;";
、データベースにアカウントを作成し、変更することができます:解が
おそらく、WinFormアプリケーションを実行しているユーザーには、DBへのアクセス権がありませんか? .exeをデータベースにアクセスできるユーザーとして実行してみてください。 –
同じマシンのSql Server Management Studioセッションで_test1 \ test1_を使用すると接続できますか? – Steve
ユーザーにアクセス権があります。はい、SSMS経由で\ test1に接続できます。 – lemunk