"The underlying provider failed on Open"在访问 SQL Azure 数据库时,使用 Webrole 中的 WCF 数据服务访问



当使用开发Fabric中webrole中的WCF数据服务访问sql azure db时," Open上底层提供者失败"。

以admin模式打开VS 2010。

创建新的windows azure项目。

添加网页

增加了一个ADO。. NET实体数据模型到SQL azure中的数据库。这将正确地建立连接,读取所有表并生成模型。在连接到Azure数据库时使用标准sql身份验证。

新增WCF数据服务项目。

当I F5解。服务定义正确打开,显示模型中存在的表。但是当我在URL中添加表名时(这是与数据库建立实际连接的时候),上面的错误出现在HTTP 500响应中。

注意:我可以从SSMS连接到SQL Azure数据库。

能够在生成实体数据模型时连接到它。

当我在Windows Azure web角色中托管解决方案时,一切正常。

但是当我尝试在VS2010的开发模拟器中这样做时,它不起作用。知道为什么吗?

坦率地说,我不知道为什么会发生这种情况。考虑到它在Azure Web角色中工作(您是否部署到真实的Azure帐户?)并且从您的SSMS,我假设您已经禁用了SQL Azure防火墙,或者打开它以便从Windows Azure服务和您的公共IP地址访问。剩下的唯一问题是仔细检查连接字符串。当你击中F5你可以打破错误,看到实际的连接字符串正在使用本地?这可能会给你一些失败的原因。

如果从本地开发盒连接到SQL Azure,则需要在门户中添加防火墙规则,以便一切正常工作。检查并确保您已经在门户中启用了防火墙规则。

你的问题听起来和我刚刚经历的非常相似。我发现下面的建议对我有帮助:http://social.msdn.microsoft.com/Forums/en-US/windowsazuredevelopment/thread/ca5887aa-7720-41bb-af8a-1633347be1c5

解决方法,至少在我的例子中,是注释掉ServiceDefinition配置文件中的"sites"部分。HTH

最新更新