Visual Studio 2010 の開発マシンで SQL Server 2008 ユーザー インスタンスと通信する Entity Framework 4.3.1.0 を使用して記述された C# アプリがあります。Visual Studio のラップトップでも動作します。しかし、顧客のデスクトップ PC では、SQL Server 2008 R2 を使用して、アプリケーションでデータベースに接続できません。エラーは
基になるプロバイダーが Open で失敗しました
3 台のコンピューターはすべて Windows 7 64 ビットですが、アプリは 32 ビットです。
の接続文字列を疑いましたmyapp.exe.config
が、Visual Studio で使用しているものと同じです。
調査を行う中で、私は 2 つの可能性を思いつきました。
- 同じ接続文字列は SQL Server 2008 と SQL Server 2008 R2 で機能しますか?
- ファイルの場所は
.mdf / .ldf
重要ですか。最初はアプリケーション フォルダーにインストールしましたが、事前定義されAllUsersAppData
た . アプリケーション フォルダはサーバー ファイルに対して読み取り専用ですか?
これは、app.config の ConnectionStrings セクションです。両方が必要かどうかはわかりません。
<connectionStrings>
<add name="DataClass.Properties.Settings.SWDatabaseEntities" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\SWDatabase.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" />
<add name="SWDatabaseEntities" connectionString="metadata=res://*/SWDatabaseModel.csdl|res://*/SWDatabaseModel.ssdl|res://*/SWDatabaseModel.msl;provider=System.Data.SqlClient;provider connection string="data source=.\SQLEXPRESS;attachdbfilename=|DataDirectory|\SWDatabase.mdf;integrated security=True;user instance=True;multipleactiveresultsets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
IBM クライアントがインストールした mcahine.config からエラーを削除した後、何らかの理由で動作し始めました。すぐにはうまくいきませんでしたが、他に何が変わったのかわかりません。再起動後だったのかもしれません。