【发布时间】:2018-04-06 13:53:30
【问题描述】:
我有一个带有 sql 数据库和 asp.net 5 Web 应用程序的 Azure 试用帐户。数据库服务器防火墙对我的本地计算机 IP 有一个规则,并且选中了“允许访问 Azure 服务”复选框。我可以从我的本地 Sql Server 管理器连接到 Azure 数据库而不会发生意外。
Web 应用程序在其“应用程序设置/连接字符串”部分设置了此连接字符串。我已经使用此连接字符串检查了 wep 应用程序 IS:
"服务器=tcp:[MyServerName].database.windows.net,1433;Database=[MyDbName];用户 ID=[MyUserName]@[MyServerName];Password=[MyPassword];Encrypt=True;TrustServerCertificate=False ;联系 超时=30;"
在桌面客户端中使用相同的连接字符串并且工作正常。 但是web app连接不上服务器,抛出这个异常,很清楚,但是不知道怎么解决。
发生网络相关或特定于实例的错误,同时 建立与 SQL Server 的连接。找不到服务器或 无法访问。验证实例名称是否正确,并且 SQL Server 配置为允许远程连接。 (提供者:命名 Pipes Provider,错误:40 - 无法打开与 SQL Server 的连接)
我知道这里已经提出并回答了非常相似的问题,但它们都不是我面临的完全相同的问题,也不是我的解决方案。
感谢大家的宝贵时间。
更新 1
作为测试,我已将网站配置为在本地 IIS 上运行,针对 azure DB,它也可以运行。因此,桌面应用程序、sql server manager 和 IIS 可以从我的本地计算机访问这个数据库。当然,我的 IP 在服务器防火墙中被列入白名单,但 azure 应用服务也被列入白名单,无法访问。
更新 2
Joe Raio 的评论让我仔细检查了区域配置,这是当前设置的屏幕截图。我相信一切都是正确的。
【问题讨论】:
-
您是否也尝试将 Web 服务器的地址添加到数据库的防火墙设置中?当我有时间看看是否可以进一步排除故障时,我会尝试重现您的场景。
-
网站托管在Azure App Services,所以不知道怎么查IP。但是,在 sql server 的防火墙设置中,有一条规则启用“允许访问 Azure 服务”,它应该将 azure 内的所有应用程序列入白名单。
-
您可以点击网页应用的“属性”标签查看IP地址。尽管根据您的描述,您不必添加 Web 应用程序的 IP 地址。它应该工作。 Web 应用程序和 sql 数据库是否都托管在同一个 Azure 地理区域中?
-
刚刚检查过,是的,两者都托管在“西欧”地区。
-
您是否能够从属性选项卡中获取 IP 并尝试以这种方式添加?
标签: azure azure-sql-database azure-web-app-service