0

我在本地机器上安装了 EF4.3.1。

我创建了一个新的 Web 应用程序项目并添加了框架。然后我创建了一个数据库/模型等。该框架分为 2 个项目,1 个 DAL,1 个实体。在我的本地机器上,我仅限于 SQL Express 2008。

这是来自 web config 的配置部分:

  <configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.3.1.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  </configSections>

这是我使用的连接字符串:

<add name="PayDayLoanEntities" connectionString="metadata=res://*/Models.PayDayLoans.csdl|res://*/Models.PayDayLoans.ssdl|res://*/Models.PayDayLoans.msl;provider=System.Data.SqlClient;provider connection string='data source=.\SQLEXPRESS;attachdbfilename=&quot;C:\Documents and Settings\John\My Documents\Visual Studio 2010\Projects\IL\WebSite\App_Data\PayDayLoans.mdf&quot;;integrated security=True;connect timeout=30;user instance=True;multipleactiveresultsets=True;App=EntityFramework'" providerName="System.Data.EntityClient" />

这一切都有效!

在我的生产机器上,我使用 SQL 2008 网络版,因此将连接字符串更改如下:

<add name="PayDayLoanEntities" connectionString="metadata=res://*/Models.PayDayLoans.csdl|res://*/Models.PayDayLoans.ssdl|res://*/Models.PayDayLoans.msl;provider=System.Data.SqlClient;provider connection string='Data Source=localhost;Initial Catalog=PayDayLoans;uid=***;pwd=********&quot;;integrated security=True;connect timeout=30;user instance=True;multipleactiveresultsets=True;App=EntityFramework'" providerName="System.Data.EntityClient" />

但是,我收到以下错误消息:

Could not load file or assembly 'EntityFramework, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

配置部分指的是 4.3.1,但错误是 4.1.0。有人知道我在这里缺少什么吗?

任何帮助表示赞赏。

4

1 回答 1

0

很有可能您的解决方案中的某些内容在为 RELEASE 构建时引用了 EF 4.1.0。也许您的构建服务器没有正确更新?

在您的生产机器上运行Fuslogvw(以管理员身份,否则它会静默失败)。在启动 Web 应用程序之前开始记录绑定失败。Fuslogvw 会告诉你究竟是什么试图绑定 EF 4.1.0。

于 2013-01-29T18:33:12.930 回答