我现在已经设法通过首先在 Azure 门户中创建一个虚拟网络并将一个新的 VM 部署到该网络来引用运行具有内部 IP 10.0.0.4 的 SQL Server 的虚拟机。
使用 web 角色,您无法在通过门户进行配置时指定虚拟网络设置。因此,要将 web-role 带入网络,您需要在 .cscfg 文件中定义它:
<NetworkConfiguration>
<VirtualNetworkSite name="VirtualNetworkName" />
<AddressAssignments>
<InstanceAddress roleName="MyWebRole">
<Subnets>
<Subnet name="AppSubnet" />
</Subnets>
</InstanceAddress>
</AddressAssignments>
</NetworkConfiguration>
您现在可以在门户中确定 VM SQL Server 的内部 IP,并将其添加到我的应用程序 web.config 中定义的连接字符串中。将您的应用程序发布到 Azure 并提供您已正确配置端点并打开防火墙它应该可以正常工作。
在运行了一些性能测试之后,通过公共 DNS 使用内部 IP 可以获得利润。我推荐将Web 角色连接到 VM的指南作为一个很好的参考点。
另一件事。在连接字符串中使用 DNS(例如 myvm.cloudapp.net)时,我找不到可预测的方法来知道 Web 角色将从哪个 IP 调用。因此,很难在 VM 上打开端口 1433 以仅允许 Web 角色通过。使用内部 IP,我刚刚打开了整个子网。