0

我有一个使用 Entity Framework 4.3.1.0 编写的 C# 应用程序,它与我在 Visual Studio 2010 中的开发机器上的 SQL Server 2008 用户实例对话。它也适用于我在 Visual Studio 中的笔记本电脑。但是在客户的台式电脑上,使用 SQL Server 2008 R2 我无法使用应用程序连接到数据库。错误是

基础提供程序在打开时失败

三台计算机都是 Windows 7 64 位,但应用程序是 32 位。

我怀疑 中的连接字符串myapp.exe.config,但它与我在 Visual Studio 中使用的相同。

在进行研究时,我提出了两种可能性。

  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