我们的基础设施团队一直在努力来配置我们的Azure订阅我们的预置型防火墙,基本上按照these steps之间的站点到站点VPN Azure的连接。为了验证这一点,我们已经创建了一个简单的Azure的Web应用程序,使针对位于的预置型防火墙后面的一个SQL Server的查询。
这个Web应用程序没有问题,在本地工作。此外,相同的代码和连接字符串,当作为控制台应用程序并运行Azure的虚拟机上编译,正常工作为好。但是,当部署到Azure中的Web应用程序,到SQL Server连接失败:
[Win32Exception(0X80004005):等待操作超时]
[SQLEXCEPTION(0x80131904):在与SQL Server建立连接时出现与网络相关的或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server配置为允许远程连接。 (提供者:TCP提供程序,错误:0 - 等待操作超时。)]
无论在Azure虚拟机和Web应用程序被配置为指向Azure的互联星空。这看起来似乎是防止Web应用程序从它的默认端口(1433)上的SQL Server通信。如果我打开了Web应用程序的调试控制台和使用默认端口(80),在SQL Server做tcpping
,它成功返回。但tcpping
端口出1433倍。
它不会出现在Azure网络安全小组阻止端口:
我发现的唯一的解决方案,与我们的具体的设置基本上可以归结为“use Azure Hybrid Connections instead”,这不会是我们的第一选择。
与微软的支持工作后,下面进行了更改,现在互联星空的整合工作。我为缺乏对其中一些细节的道歉,但我们的基础架构团队做了大部分的故障排除。我们希望,一些项目将有助于点别人为自己设置一个解决问题的方向:
tcpping
在SQL Server。