2013-10-25 30 views
4

我有我的本地机器上使用EF6的WebAPI 2,它完美的作品。 当我发布的解决方案,并将其上传到服务器,我收到以下错误:Windows 2012服务器 - 没有实体框架提供程序找到ADO.NET提供程序与不变的名称System.Data.SqlClient'

System.Data.Entity.Core.MetadataException: Schema specified is not valid. Errors: Database.FooModel.ssdl(2,2) : error 0152: No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlClient'. Make sure the provider is registered in the 'entityFramework' section of the application config file.

注:
我看到固定在开发机器很多帖子,但我的问题是不是这样。当我将代码上传到Windows 2012服务器时,我的问题就在于此。

问:
你如何确保服务器上传EF6解决方案时得到适当的设置?
我已经更新了服务器到DotNet 4.5.1,我应该在服务器上安装什么?

回答

6

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

不知道这个信息可以帮助..但至少我们知道,我们可以创建一个新的应用程序,并且工作!

+3

+1帮助我的信息。在我的情况下,EntityFramework.SqlServer.dll没有被发布。一旦我把这个文件放到服务器上,一切都奏效了! – MatthewT

+1

谢谢你们 - 我还缺少EntityFramework.SqlServer.dll。删除和重新添加引用似乎可以解决它。 –

+0

我也面临同样的问题,但无法按照上述步骤解决它。还有其他解决方案吗?我在特定服务器上遇到此问题,并且在另一台服务器上正常工作。有什么建议么 ? –

0

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

相关问题