0

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 つの可能性を思いつきました。

  1. 同じ接続文字列は SQL Server 2008 と SQL Server 2008 R2 で機能しますか?
  2. ファイルの場所は.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=&quot;data source=.\SQLEXPRESS;attachdbfilename=|DataDirectory|\SWDatabase.mdf;integrated security=True;user instance=True;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>

IBM クライアントがインストールした mcahine.config からエラーを削除した後、何らかの理由で動作し始めました。すぐにはうまくいきませんでしたが、他に何が変わったのかわかりません。再起動後だったのかもしれません。

4

0 に答える 0