【问题标题】:Windows 2012 SERVER - No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlClient'Windows 2012 SERVER - 找不到具有不变名称“System.Data.SqlClient”的 ADO.NET 提供程序的实体框架提供程序
【发布时间】:2013-10-25 18:58:29
【问题描述】:

我在本地机器上有一个使用 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,我还应该在服务器上安装什么?

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • +1 获取帮助我的信息。就我而言,EntityFramework.SqlServer.dll 没有发布。一旦我把这个文件放到服务器上,一切正常!
    • 谢谢你们 - 我也缺少 EntityFramework.SqlServer.dll。删除并重新添加引用似乎可以解决问题。
    • 我也面临同样的问题,但无法按照上述步骤解决。还有其他解决方案吗?我在特定服务器上遇到了这个问题,并且在另一台服务器上工作正常。有什么建议吗?
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2014-02-06
      • 2013-08-29
      • 1970-01-01
      • 2014-03-05
      • 1970-01-01
      • 1970-01-01
      • 2013-11-18
      • 1970-01-01
      相关资源
      最近更新 更多