WCF,实体框架&SQL Server -“底层提供程序在打开上失败”

本文关键字:程序 失败 框架 实体 SQL Server WCF | 更新日期: 2023-09-27 18:15:03

我通过WCF测试客户端成功运行测试,直到我尝试使用实体框架拉入数据。

为了确保我没有做任何愚蠢的事情,我从本教程下载了示例代码,它的功能类似:http://www.codeproject.com/KB/WCF/WCFandEF.aspx

…当我运行它时,我在类似的地方得到相同的错误:

var productEntity = (from p in context.ProductEntities 
                     where p.ProductID == id
                     select p).FirstOrDefault();

错误是

打开基础提供程序失败。

我可以用相同的连接字符串从"正常应用程序"中打开数据库,这似乎是特定的从WCF测试客户端访问DB。

在这里和谷歌上搜索"底层提供商在Open上失败"通常表明这是一个连接字符串问题,但我很确定这不是在这种情况下。

所以现在我想这是某种权限问题。

我使用SQL Server和Windows 7,与visual studio 2010。

我从昨天开始就一直在撞我的头,所以任何帮助或保护头的装备都很感谢。

编辑为包含连接字符串

<add name="NorthwindEntities" 
     connectionString="metadata=res://*/Northwind.csdl|res://*/Northwind.ssdl|res://*/Northwind.msl;provider=System.Data.SqlClient;provider
connection string=&quot;Data Source=localhost;Initial Catalog=Northwind;User ID=sa;MultipleActiveResultSets=True&quot;" 
     providerName="System.Data.EntityClient" />

WCF,实体框架&SQL Server -“底层提供程序在打开上失败”

此错误表示您的连接字符串100%有问题。

创建一个确定工作的连接字符串的好方法是创建一个新的(虚拟)项目,向其添加实体框架数据模型,选择"从数据库生成模型",选择所需的连接,然后单击"测试连接"以确保它工作。
确保选中"Save entity connection settings in App.Config as:…"
然后,在你的web/app中。配置,你有一个连接字符串,你可以复制粘贴到你自己的项目

是否尝试在连接字符串中插入数据库密码?

参考:http://stack247.wordpress.com/2011/03/02/entity-framework-exception-the-underlying-provider-failed-on-open/

好吧,我有同样的错误几天…实际上两天了,是的我找到了解决方案 Alhamdulillah..

至于我……我在实体服务连接上设置了Windows身份验证。所以我去IIS 7应用程序池高级设置的web服务…将身份从"ApplicationPoolIdentity"更改为"Network Service",并设置了我当前的用户名和密码。

我以后可能会遇到一些其他的问题,但我还是会说一个良好的开端:-)!

我被移除"综合安全=True;"就这样解决了