以下は私の接続文字列です:
connectionString="metadata=res://*/EDMX.Test.csdl|res://*/EDMX.Test.ssdl|res://*/EDMX.Test.msl;provider=System.Data.SqlClient;provider connection string="Data Source=home_computer;Initial Catalog=db_Test;Persist Security Info=True;User ID=testUser;Password=$1234;MultipleActiveResultSets=True""
プログラムがスタックしたコードは次のとおりです。
EDMX.TestingEntity context = new EDMX.TestingEntity();
var query = from t in context.User
where t.UserName == _userName
select t;
上記のコードを実行した後、変数クエリを確認したところ、例外が見つかりました
基になるプロバイダーが Open で失敗しました。
私はチェックしました:
- サーバーとコンピューター間の接続は正常です
- ユーザー名 testuser とパスワード $1234 でデータベースにログインできます
- データベース (SQL Server) のセキュリティ設定を確認したところ、testUser にアクセス許可が付与されました
なぜこの例外が発生するのですか? 私は.net 4.5を使用しています
追加した:
もう一度試してみて、内部例外を確認したところ、SQL Server への接続を確立中にネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。(プロバイダー: 名前付きパイプ プロバイダー、エラー: 40 - SQL Server への接続を開けませんでした)
ネットワークの問題である可能性があることはわかっていますが、サーバーとコンピューターのファイアウォールをオフにして、再試行しましたが、まだ成功していません..
ちょうど今、この接続をテストするために接続文字列をプログラムにコピーしましたが、うまく機能していました..
すべての変更をロールバックして再度テストしたところ、うまくいきました