Windows 2012 SERVER - 找不到具有不变名称“System.Data.SqlClient”的ADO.NET提供程序的实体框架提供程序

时间:2013-10-25 18:58:29

标签: asp.net asp.net-mvc entity-framework

我在本地计算机上使用EF6有一个WebAPI 2,它运行良好。 当我发布解决方案并将其上传到服务器时,我收到以下错误:

  

System.Data.Entity.Core.MetadataException:指定的架构无效。错误:   Database.FooModel.ssdl(2,2):错误0152:找不到具有不变名称“System.Data.SqlClient”的ADO.NET提供程序的实体框架提供程序。确保提供程序已在应用程序配置文件的“entityFramework”部分中注册。

注意:
我看到很多关于修复开发机器的帖子,但我的问题不是那个。我的问题在于我将代码上传到Windows 2012服务器。

问题:
在上传EF6解决方案时,如何确保 SERVER 获得正确的设置? 我已经将服务器更新为DotNet 4.5.1,我还应该在服务器上安装什么?

2 个答案:

答案 0 :(得分:7)

=======================================
解决方案: 不幸的是,我不得不重新启动一个新的应用程序并快速复制文件,这解决了问题。现在服务器运行完美。如果我查看已发布的文件(之前和之后),我会在bin目录中看到一个较新的“EntityFramework.dll”文件版本和一个新的“EntityFramework.SqlServer.dll”文件。我还注意到“Microsoft.Data.Edm.dll和Microsoft.Data.OData.dll”不在新版本中。

不确定此信息可以提供帮助..但至少我们知道我们可以创建一个新的应用程序并且有效!!!

答案 1 :(得分:0)

复制" EntityFramework.SqlServer.dll"在服务器上的bin目录中,或者将其作为参考添加到解决方案中并重新发布。