我已将我的WCF项目发布到服务器上,我还将MVC应用程序发布到同一个使用WCF服务的盒子上。
尝试登录我的MVC应用程序时,这会使用wcf服务,但我在浏览器上遇到此异常,
实体框架提供程序类型 “System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer'在应用程序配置文件中注册 对于具有不变名称'System.Data.SqlClient'的ADO.NET提供程序 无法加载。确保程序集限定名称 已使用,并且程序集可供正在运行的应用程序使用。
这是一个实体框架异常,但我假设因为我的项目已经在开发环境中引用了EF,在部署服务项目之后,DLL也应该包含EF引用,但我不知道为什么我会收到此错误。
我可以看到此消息,因为我打开了includeExceptionDetailInFaults="True"
答案 0 :(得分:15)
@FranciscoGoldenstein说!您不需要在控制台应用程序中安装Entity Framework或其他任何东西,您只需要添加对程序集EntityFramework.SqlServer.dll的引用。您可以将此程序集从使用Entity Framework的类库项目复制到LIB文件夹并添加对它的引用。
总结:
这对我有用!我希望它有所帮助。
答案 1 :(得分:3)
卸载Entity Framework nuget并重新安装,为我工作。
答案 2 :(得分:3)
解决此问题的最简单方法是在EF项目的一个类中添加以下行:
public class Blablabla
{
private static string __hack = typeof(SqlProviderServices).ToString();
// other class members as they were before.
}
这将强制构建过程将 EntityFramework.SqlServer.dll 复制到任何引用EF项目的项目的\bin
文件夹中。
无需在任何下游项目中安装EF nuget程序包或对EntityFramework.SqlServer.dll进行明确引用。
答案 3 :(得分:1)
答案 4 :(得分:0)
删除bin文件夹并清理/重建解决方案,正如我在my answer to another similar question中建议的那样。