带有代理的 WCF 服务无法连接到 EntityFramework
Posted
技术标签:
【中文标题】带有代理的 WCF 服务无法连接到 EntityFramework【英文标题】:WCF Service with Proxy cannot connect to EntityFramework 【发布时间】:2017-09-18 22:36:27 【问题描述】:我想用代理实现 WCF 服务。服务和代理位于 2 个不同的项目中。 entityFramework 位于 Service 项目中。在代理的 app.config 中,我将连接字符串如下:
<add name="foodOrderEntities" connectionString="metadata=res://*/foodOrderEF.csdl|res://*/foodOrderEF.ssdl|res://*/foodOrderEF.msl;provider=System.Data.SqlClient;
provider connection string="data source=(LocalDB)\MSSQLLocalDB;attachdbfilename=|DataDirectory|\foodOrder.mdf;integrated security=True;connect timeout=30;
MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
但是当我尝试使用服务测试客户端调用该方法时,出现以下异常: @"在 ADO.NET 提供程序的应用程序配置文件中注册的实体框架提供程序类型 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer' 不能是不变名称 'System.Data.SqlClient'已加载。确保使用了程序集限定名称,并且程序集可用于正在运行的应用程序。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=260882。"
请任何人告诉我如何设置连接字符串以使代理项目 serviceHost 可以成功访问数据库?还是我需要为 EF 对象独立创建另一个项目,然后添加引用?
【问题讨论】:
【参考方案1】:对不起,伙计们,我发现了另一个与此问题相关的帖子。 No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlClient'
毕竟我需要做的只是将EntityFramework.SqlServer.dll的引用添加到代理项目中。
【讨论】:
【参考方案2】:尝试在服务项目中安装 Nuget Entity Framework 下载。我很确定服务项目和 ADO.NET 数据层项目都应该安装实体框架。
【讨论】:
以上是关于带有代理的 WCF 服务无法连接到 EntityFramework的主要内容,如果未能解决你的问题,请参考以下文章
当客户端甚至无法连接到 WCF 服务器时,为啥会出现“服务器堆栈跟踪”异常?