マシンの 1 つに 2008 SQL Server Express がインストールされており、リモート接続を確立しようとしています... MS SQL Server Management Studio を使用すると、まったく問題なくデータベースにログインできます (同じ資格情報)、しかし、C# アプリケーションで接続文字列を作成しようとすると、例外が発生します。
SQL Server への接続を確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。
接続文字列は次のようになります (個人情報は変更されています)。
"Data Source="MACHINENAME\\SQLEXPRESS";User ID="Admin";Password="the_password";Initial Catalog="MyDatabase";Integrated Security=True;Connect Timeout=120");
前述のとおり、Management Studio を使用して同じ設定(同じユーザー ID、パスワード、データ ソース名) でログインできますが、上記の接続文字列で接続を開こうとすると失敗します。
ノート:
サーバーでリモート接続を有効にし、ファイアウォールを無効にし、サーバーへの TCP/IP 接続を有効にし、SQL ブラウザーを有効にしました。
同じマシン上にいる場合、接続文字列は正常に機能します。
Integrated Security オプションを調べて、Windows ログインを使用しようとしていないことを確認するために false に設定しましたが、それでも失敗します。
データベースは、Windows ログインとデータベース ログインの両方を許可するように設定されています。
Integrated Security オプションを SSPI、True、最後に False に変更すると、3 つすべてで上記と同じエラーが発生しました。
私が何か間違ったことをしているかどうか、誰かに教えてもらえますか?
更新、これが私の正確なコードです(今回はパスワードのみが削除され、同じマシンで実行されている管理スタジオの写真を追加しました):
string _connectionString =
//string.Format("Server=%s;User ID=%s;Password=%s;Database=%s;Connect Timeout=120", // Same problem
//string.Format("Server=%s;User ID=%s;Password=%s;Database=%s;Integrated Security=False;Connect Timeout=120", // Same problem
string.Format("Data Source=%s;User ID=%s;Password=%s;Initial Catalog=%s;Integrated Security=False;Connect Timeout=120", // Same problem
"GANTCHEVI\\SQLEXPRESS",
"FinchAdmin",
"the_password",
"Finch");
http://s113.photobucket.com/albums/n202/ozpowermo/?action=view¤t=ManagementStudio.jpg
私はそれを考え出した:
"Data Source=" ラベルを使用する場合は、"User Id" を使用する必要がありますが、User ID を使用すると機能しないようです!
string _connectionString = "Data Source=GANTCHEVI\\SQLEXPRESS;Initial Catalog=Finch;Integrated Security=False;User Id=FinchAdmin;Password=the_password;Connect Timeout=0";"