繁体   English   中英

WCF和实体框架和SQL Server - “底层提供程序在Open上失败”

[英]WCF & Entity Framework & SQL Server - “The underlying provider failed on Open”

我通过WCF测试客户端成功运行测试,直到我尝试使用Entity Framework提取数据。

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

...当我运行它时,我在类似的地方得到了同样的错误:

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

错误是

底层提供程序在Open上失败。

我可以使用相同的连接字符串从“普通应用程序”打开数据库,它似乎是从WCF测试客户端特定访问数据库。

在这里和谷歌上进行研究“基础提供商在开放时失败了”。 通常表示这是一个连接字符串问题,但我很确定它不是在这种情况下。

所以现在我希望它是某种权限问题。

我正在使用Visual Studio 2010的SQL Server和Windows 7。

从昨天开始,我一直在敲打我的脑袋,所以任何帮助或保护头盔都会受到赞赏。

编辑包含连接字符串

<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" />

此错误表示连接字符串中存在100%问题。

创建一个可靠的连接字符串的好方法是创建一个新的(虚拟)项目,向其添加一个实体框架数据模型,选择“从数据库生成模型”,选择所需的连接,然后单击“测试连接”为确定它有效。
确保选中“”将App.Config中的实体连接设置保存为:...“。
在web / app.Config中,你有一个连接字符串,你可以复制+粘贴到你自己的项目

您是否尝试将数据库密码插入连接字符串? 它对我有用。

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

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

至于我...我在我的实体服务连接上设置了Windows身份验证..所以我做的是我去了IIS 7应用程序池高级设置的Web服务...将身份从'ApplicationPoolIdentity'更改为'网络服务'我也设置了我当前的用户名和密码。

我可能会在以后遇到其他一些问题,但我仍然会说一个好的开始:-)!

我删除了“integrated security = True;” 这样解决了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM