1

我需要将现有的 Asp.NET 应用程序移动到 Azure,在那里我还设置了一个托管 sql server 的虚拟机。现在,我显然不想一直部署,而且我什至还没有配置 Azure 以使应用程序存在于其中。我只想确保我可以让应用程序连接到虚拟机上的 sql server 实例。

谈到 Azure,我是一个完全的新手。所以我完全不知道自己在做什么,但我正在使用教程和优秀的 Google 来尝试解决所有问题。

我的 web.config 中的连接字符串按照本教程中列出的方式格式化,如下所示:

<add name="AzureSqlServer" connectionString="Data Source=tcp:[internal-IP];
 Initial Catalog=TestDb;User ID=[sql-user];Password=[sql-pass];Encrypt=true;
 Trusted_Connection=false;TrustServerCertificate=true"
 providerName="System.Data.SqlClient" />

这不会自行连接,所以显然我还有其他事情要做。现在,本教程遵循本节的几个步骤,这些步骤都需要安装 Azure SDK,包括设置 Web 角色以连接到带有 SQL Server 的 Azure 托管的 VM。这一切都很好,花花公子,但有一点小事没有说明:

事实证明,Azure SDK 仅与 Windows Vista 及更高版本兼容。所以,我可以做一个Win7的虚拟机,但要多花几天时间。

除了使用 Azure SDK 之外,还有其他方法可以将 Asp.NET Web 应用程序连接到 Azure 托管的 SQL Server 虚拟机吗?

4

1 回答 1

0

您提到对 Azure 一无所知,因此查看www.windowsazure.com上的教程是一个很好的起点,尤其是当您尝试将生产应用程序启动到您知之甚少的环境中时。

话虽如此:如果您的 SQL Server 在 VM 中运行,并且该 VM 是与您的 asp.net 应用程序不同的部署的一部分(例如,您使用了诸如 Web 角色或 Azure 网站之类的东西),那么您就不能使用您的 SQL Server 的内部 IP 地址,因为您无法访问该 IP 地址(每个部署都位于其自己的专用网络中)。您的选择是:

  • 如果您将网站部署到 Azure 网站,您将通过其公共终结点访问 SQL Server VM(您需要创建该终结点,称为输入终结点,并打开端口 1433)。所以它将是你的 sqldeployment.cloudapp.net:1433。
  • 如果您使用 Web 角色 (yourwebapp.cloudapp.net) 部署到云服务,您可以执行与网站相同的操作,或者您可以在云服务和 SQL Server 虚拟机部署之间创建虚拟网络。
  • 如果您将网站部署到与 SQL Server VM 相同的部署中的虚拟机(听起来不像您这样做),那么您可以通过其内部 IP 地址或 DNS 名称直接与 SQL Server 通信。

而且,只要一切都在同一个数据中心,您的网站和数据库之间就不会有任何数据流量流出数据中心。

还有一件事,关于 Azure SDK:虽然您可能需要 SDK 来访问存储和其他服务,但您不需要 SDK 来与另一个虚拟机通信。

于 2013-09-06T17:55:53.520 回答