导出 (0) 打印
全部展开

教程:通过虚拟网络将 ASP.NET 应用程序连接到 Azure 中的 SQL Server

更新时间: 2014年2月

生成同时利用 Azure 云服务(平台即服务)和 Azure 虚拟机(基础结构即服务)的应用程序对于大多数组织都是一个重要的概念。借助 Azure 虚拟机,可通过部署和管理虚拟机,将现有的服务器工作负荷及应用程序迁移到 Azure。借助 Azure 云服务,可通过部署由 Web 角色和辅助角色组成的云服务(也称为托管服务),在 Azure 中生成和运行多层应用程序。

本教程演示如何通过 Azure 虚拟网络,将 ASP.NET 应用程序(云服务和 Web 角色)连接到 Azure 虚拟机中的 SQL Server。在 Azure 中创建虚拟机时,可通过门户设置虚拟网络设置。对于云服务,需要使用服务配置文件将云服务部署到 Azure 中某个特定的虚拟网络。

在本教程中,你将学习如何执行以下操作:

  1. 若要按本教程进行操作,请在本地计算机上安装 Visual Studio

  2. 此外,还要安装用于 .NET Framework 的 Azure SDK。

    • 若要安装 Azure SDK for .NET,请单击 Azure 下载链接。选择与所使用的 Visual Studio 版本对应的某个版本:

      适用于 Visual Studio 2013 的 Azure SDK

      适用于 Visual Studio 2012 的 Azure SDK

    • 当提示你运行或保存 VWDOrVs2013AzurePack.2E2.2E2.exeVWDOrVs11AzurePack.2E2.2E2.exe 时,单击“运行”

    • “Web 平台安装程序”窗口中,单击“安装”,然后进行安装。

  3. (可选)如果要在本地内部开发环境中测试本教程,则务必在本地计算机中也安装 SQL Server。

在本教程中,我们的目标是在云中创建一个专用的私有虚拟网络。这样可确保虚拟机的内部 IP 地址 (DIP-Directed IP) 将持久不变,即使重新启动虚拟机后也不变。以下步骤演示如何在管理门户中按订阅创建新的虚拟网络。

  1. 在左侧导航窗格中,单击“网络”,然后在底部面板上,单击“新建”。然后,单击“虚拟网络”“自定义创建”

  2. “虚拟网络详细信息”窗口的“名称”框中,键入 TestVirtualNetwork。选择“区域”。选择“创建新的地缘组”。在“地缘组名称”字段中键入 TestAffinityGroup。单击“下一步”箭头以继续。

    通过创建地缘组,Azure 可使属于该地缘组的所有服务在一个数据中心内互相尽可能靠近。这将减少延迟并提高性能,同时可能降低成本。在你创建虚拟网络时,既可以使用以前创建的地缘组,也可以新建一个地缘组。如果将现有的地缘组用于新虚拟网络,则将自动指定在距离部署到新虚拟网络的其他云服务尽可能近的位置运行任何以前在该地缘组内部署的云服务。

  3. “DNS 服务器和 VPN 连接”对话框窗口中,输入要使用的 DNS 服务器名称和 IP 地址(例如 TestDNSServer10.1.0.4)。不要选中用于点到站点或站点到站点连接的复选框。在本教程中,我们将在 Azure 中创建一个私有虚拟网络,它不用于跨界连接。

  4. “虚拟网络地址空间”对话框窗口中,可创建用于新虚拟网络和子网的私有地址空间。地址空间必须是专用的地址范围,用 CIDR 表示法指定,10.0.0.0/8、172.16.0.0/12 或 192.168.0.0/16(按 RFC 1918 指定)。对于“地址空间”,输入 10.4.0.0 作为“起始 IP”,输入 /16 作为 CIDR。注意,部署到该虚拟网络的任何设备和服务都将从此地址空间获得 IP 地址。将 Subnet-1 重命名为 FrontEndSubnet(它的“起始 IP”10.4.2.0/24),然后单击“添加子网”。单击右下角的复选标记以创建你的虚拟网络。

    可在该虚拟网络地址空间中创建多个子网。通过创建子网,可更严格地控制分配给云服务的地址和部署到该虚拟网络的虚拟机。在生成适用于 Azure 平台的复杂应用程序时,我们建议在同一虚拟网络中设置多个子网,如一个子网用于 Internet Information Services (IIS) 虚拟机,另一个子网用于 SQL Server 虚拟机。

    注意,子网 IP 地址在虚拟网络中不能发生重叠。

  5. 在部署虚拟网络之后,将无法更改 DNS 服务器。因此,请仔细规划 DNS 服务,这一点很重要。有关帮助进行此规划的详细信息,请参阅 Azure 名称解析概述

    配置虚拟网络之后,可部署虚拟机或云服务。有关如何设置虚拟网络的详细信息,请参阅 MSDN 库中的有关在管理门户中配置虚拟网络主题。有关 Azure 网络及其应用场景的其他信息,请参阅 MSDN 库中的 Azure 虚拟网络Azure 虚拟机概述

在 Azure 中,数据库看似存储在运行 SQL Server 实例的虚拟机的本地磁盘中,而实际上系统在后台将其中每个磁盘都写入到 Azure Blob。Azure 使用存储帐户作为这些磁盘的容器。以下步骤演示如何在管理门户中创建新的存储帐户。

  1. 在 Azure 管理门户中创建虚拟网络之后,在左侧单击“存储”,然后在屏幕的左下角单击“+新建”

  2. 依次单击“数据服务”“存储”“快速创建”

  3. “URL”框中键入 teststorageaccount4u,选择刚刚创建的地缘组。在“复制”中,你可以为存储帐户选择所需的复制级别。在本教程中,选择“本地冗余”。然后,单击“创建存储帐户”复选框。

有关 Azure 存储帐户的详细信息,请参阅存储帐户是什么

本教程的目标是演示如何通过 Azure 虚拟网络,将 ASP.NET 应用程序(Web 角色)连接到 Azure 虚拟机中的 SQL Server。本节演示如何在指定的地缘组和虚拟网络中创建和配置 SQL Server 虚拟机。

  1. 在 Azure 管理门户网页上的左下角,依次单击“+新建”“计算”“虚拟机”“从库中”

  2. 选择包含 SQL Server 的虚拟机映像,然后单击该页右下角的“下一步”箭头。

  3. “虚拟机配置”页上,提供以下信息:

    • 如果提供该映像的多个版本,请在“版本发布日期”中选择要使用的版本。

    • 键入 SQLVM 作为“虚拟机名称”。注意,在 Azure 门户中,单击虚拟机名称以打开其仪表板时,可看到虚拟机名称作为主机名。

    • 从下拉列表中选择合适的“大小”

    • “新用户名”框中,键入作为本地管理员的唯一用户名。

    • “新密码”框中,键入一个强密码。

    • “确认密码”框中,重新键入该密码。

  4. “虚拟机配置”页上,提供以下信息:

    • 选择“独立虚拟机”

    • “云服务 DNS 名称”框中,提供所选 DNS 名称的第一部分,使其形成 SQLVM2013.cloudapp.net 形式的全名。

    • “区域/地缘组/虚拟网络”框中,选择将托管此虚拟映像的虚拟网络。在本教程中,选择早先创建的“TestVirtualNetwork”

    • “存储帐户”框中,选择早先创建的存储帐户 teststorageaccount4u

    • 选择以前步骤中的虚拟网络 TestVirtualNetwork 后,默认情况下将在“虚拟网络子网”框中显示与此虚拟网络关联的第一个子网。如果没有为此虚拟网络创建子网,则屏幕上将不会显示“虚拟网络子网”框。否则,选择早先创建的子网 TestSubnet

    • “可用性集”框中,选择“(无)”

    • 单击“下一步”箭头以继续。

    • 接下来,查看将创建的新终结点以允许连接到虚拟机,例如通过远程桌面或安全 Shell (SSH) 客户端进行连接。你还可以立即添加终结点或以后创建它们。如果要以后创建终结点,请参阅如何设置与虚拟机的通信

    • 阅读并接受法律条款。

    • 单击右下角的选中标记以继续。

  5. Azure 即创建该虚拟机并配置操作系统设置。注意,配置过程可能耗时几分钟。Azure 配置该虚拟机完毕后,将在 Azure 管理门户中以“正在运行”的状态列出该虚拟机。如果以“已停止”的状态列出它,则单击“启动”。当你创建虚拟机时,将为你创建一个云服务。直到将其他虚拟机连接到第一个虚拟机后,管理门户中才会显示所创建的这个云服务,其中包含第一个虚拟机。Azure 根据在“虚拟机模式”页中输入的 DNS 名称,定义这个新云服务的名称。

  6. 在 Azure 管理门户中,单击刚刚创建的“SQLVM”虚拟机名称以打开其仪表板。

  7. 记下该虚拟机的“内部 IP 地址”。稍后将在连接字符串中用到该地址。

  8. 在底部菜单上,单击“连接”,然后使用远程桌面 (RDP) 登录到该虚拟机。使用管理员凭据进行登录。

  9. 首次登录到此虚拟机时,可能需要完成若干过程,其中包括设置桌面、更新 Windows 和完成 Windows 初始配置任务 (sysprep)。Windows sysprep 完成后,SQL Server 设置即完成配置任务。用 Windows 远程桌面连接到该虚拟机后,该虚拟机即可像任何其他计算机一样工作。可按正常方式连接到含 SQL Server Management Studio 的 SQL Server 的默认实例(在该虚拟机上运行)。

  10. 接下来,需要配置 SQL Server,使其侦听 TCP 协议。为此,请依次单击“开始”、“所有程序”、“Microsoft SQL Server ”、“配置工具”,然后打开“SQL Server 配置管理器”。注意,在“开始”、“所有程序”、“Microsoft SQL Server”中选择的 SQL Server 版本应与在创建该虚拟机时选择的版本一致。

  11. “SQL Server 配置管理器”的控制台窗格中,展开“SQL Server 网络配置”

  12. 单击“实例名称的协议”。(默认实例为“MSSQLSERVER 的协议”)。

  13. 在详细信息窗格中,右键单击“TCP”,默认情况下对于库映像应“已启用”该协议。对于你的自定义映像,单击“启用”(如果其状态为“已禁用”)。

  14. 在控制台窗格中,单击“SQL Server 服务”

  15. 在详细信息窗格中,右键单击“SQL Server (实例名)”(默认实例为“SQL Server (MSSQLSERVER)”),然后单击“重新启动”以停止再重新启动 SQL Server 的实例。

  16. 然后,需要在 Windows 防火墙中打开用于数据库引擎默认实例的 TCP 端口。为此,请依次单击“开始”、“所有程序”、“管理工具”,然后打开“高级安全 Windows 防火墙”

  17. “高级安全 Windows 防火墙”的左窗格中,右键单击“入站规则”,然后在操作窗格中单击“新建规则”

  18. “规则类型”对话框中,选择“端口”,然后单击“下一步”

  19. “协议和端口”对话框中,选择 TCP。选择“特定本地端口”,然后键入数据库引擎实例的端口号(对于默认实例为 1433)。单击“下一步”

  20. “操作”对话框中,选择“允许连接”,然后单击“下一步”

  21. “配置文件”对话框中,选中“域”“专用”“公共”,然后单击“下一步”

  22. “名称”页中,将入站规则的名称设为 SQLServerVM1Port,然后单击“完成”。关闭“高级安全 Windows 防火墙”窗口。

  23. 接下来,需要配置 SQL Server,使其使用混合模式身份验证。在没有域环境的情况下,SQL Server 数据库引擎无法使用 Windows 身份验证。为此,请依次单击“所有程序”、“Microsoft SQL Server (版本)”、“SQL Server Management Studio”

  24. “连接到服务器”对话框中,对于“服务器名称”,键入要通过对象资源管理器连接到数据库引擎的虚拟机的主机名。选择“Windows 身份验证”。单击“连接”。

  25. 在 SQL Server Management Studio 的“对象资源管理器”中,右键单击 SQL Server 实例的名称(虚拟机名称),然后单击“属性”

  26. “安全性”页上的“服务器身份验证”下,选择“SQL Server 和 Windows 身份验证模式”,然后单击“确定”

  27. “对象资源管理器”中,右键单击你的服务器,然后单击“重新启动”

  28. 接下来,需要创建 SQL Server 身份验证登录名,用于从其他计算机连接到第一个虚拟机。为此,请在 SQL Server Management Studio 的“对象资源管理器”中,展开要从中创建新登录名的“SQLVM”服务器实例。右键单击“安全性”文件夹,指向“新建”,然后选择“登录名…”

  29. “登录名 - 新建”对话框中的“常规”页上,在“登录名”框中输入新用户的名称 sqlvmlogin。选择“SQL Server 身份验证”。在“密码”框中,输入新用户的密码。在“确认密码”框中再次输入该密码。在其他框中保留默认值。

  30. “服务器角色”页上,单击“sysadmin”(如果要指定此登录名作为 SQL Server 管理员)。单击“确定”。默认情况下,Azure 在 SQL Server 虚拟机安装期间使用 Windows 身份验证。因此,将禁用 sa 登录,且在安装时将分配一个密码。若要使用 sa 登录名,请将其启用,并分配一个新密码。有关详细信息,请参阅更改服务器身份验证模式

  31. 在 SQL Server Management Studio 的“对象资源管理器”中,右键单击 SQL Server 实例的名称(虚拟机名称),然后单击“断开连接”

接下来,创建一个将由 ASP.NET 应用程序使用的简单数据库。

  1. 在 SQL Server Management Studio 的“对象资源管理器”中,单击“连接”,然后点击“数据库引擎...”

  2. “连接到服务器”对话框中,对于“服务器名称”,键入要连接到数据库引擎库的虚拟机的主机名 SQLVM。选择“SQL Server 身份验证”。键入 sqlvmlogin 作为登录名,然后输入早先指定的密码。单击“连接”。

  3. 在 SQL Server Management Studio 的“对象资源管理器”中,右键单击 SQL Server 实例的名称(虚拟机名称),然后右键单击“新建查询”

  4. 运行以下语句以创建一个简单的数据库。

    CREATE DATABASE TestDb;
    GO
    
  5. “数据库”下,选择这个新的数据库 TestDB。右键单击“TestDB”数据库,然后打开“新建查询”窗口。运行以下语句以在“TestDB”数据库中创建两行。

    CREATE TABLE Table1 (Col1 int primary key, Col2 varchar(20));
    GO
    INSERT INTO Table1 (Col1, Col2) VALUES (1, 'string1'), (2, 'string2');
    GO
    
    Warning警告
    在默认情况下,Azure 将所有操作系统和 SQL Server 软件保存在操作系统驱动器 (C:\) 中。为了提高性能,我们建议向虚拟机连接数据磁盘以保存所有数据和日志文件。此外,建议不要在临时存储驱动器 (D:\) 中保存任何数据,因为它不是永久驱动器。有关在 Azure 中附加磁盘的详细信息,请参阅如何将数据磁盘附加到虚拟机。有关如何使用 SQL Server Management Studio 更改 SQL Server 中新数据和日志文件的默认位置的详细信息,请参阅查看或更改数据和日志文件的默认位置

在本部分中,你将要了解如何在本地内部计算机中创建一个简单的 ASP.NET 应用程序,并将其配置为连接到 Azure 虚拟机中的 SQL Server 数据库实例。此示例使用 GridView 控件,使你不必编写任何代码即可插入、更新和删除数据库中的数据。

  1. 在 Visual Studio 中的“文件”菜单上,单击“新建”,然后选择“项目”

  2. “新建项目”对话框的“已安装的模板”列表中,对于 Visual C# 或 Visual Basic 选择“Azure 云服务”

  3. 为名称键入 DataBinding,然后单击“确定”

  4. “新建 Azure 云服务”对话框中,从“.NET Framework 角色”列表中选择“ASP.NET Web 角色”,然后单击箭头以将其添加到“Azure 云服务解决方案”列表中。单击“确定”。在 Visual Studio 2013 中,在“新建 ASP.NET 项目”中为 WebRole 选择“Web 窗体”。然后,单击“确定”

  5. 在 Default.aspx 中,单击“设计”切换到设计视图。

  6. GridView 控件从“工具箱 - 数据”拖到设计图面上。

  7. GridView“属性”窗口中,将 AutoGenerateDeleteButtonAutoGenerateEditButton 设置为 true

  1. “解决方案资源管理器”“Web 角色”项目中,双击“Web.config”。

  2. 在 Web.config 中,按以下方式替换现有的 connectionStrings 标记并根据需要进行修改:

    <connectionStrings>
        <add name="SQLServerinWAConnection" 
        connectionString="Data Source=tcp:SQLVMInternalIPAddress;Initial Catalog=TestDb;User ID=sqlvmlogin;Password=yourpassword;Encrypt=true;Trusted_Connection=false;TrustServerCertificate=true"
        providerName="System.Data.SqlClient" />
    </connectionStrings>
    
    TrustServerCertificate 设置为 true 时,即要求传输层使用 SSL 将通道加密,并跳过遍历证书链以验证信任的过程。有关详细信息,请参阅加密与 SQL Server 的连接

    Warning警告
    确保将“tcp:SQLVMInternalIPAdress”更新为新虚拟机的内部 IP 地址,如“tcp:10.4.2.4”。此外,确保将密码更新为早先为登录名“sqlvmlogin”指定的密码。

    将 Azure 项目部署到虚拟网络时,不必处理实例之间的名称解析。换句话说,如果所部署的 Web 角色将连接到在同一虚拟网络中某个虚拟机上运行的 SQL Server,则需要在 web.config 文件中指定该 SQL Server 的 IP 地址。因此,我们建议先创建 SQL Server 虚拟机,以便可为 Web 应用程序获得该虚拟机的内部 IP 地址。

  3. 若要获得该虚拟机的 IP 地址,请登录到管理门户。单击“虚拟机”。单击新的虚拟机 SQLVM 以打开其仪表板。按上述操作,将内部 IP 地址复制到 web.config 文件中。

  4. Default.aspx 中,单击“源”切换到源视图。

  5. BodyContent 源文件的 Default.aspx 标记中添加以下标记,为你的连接创建 SqlDataSource 控件:

    <asp:SqlDataSource ID="SQLServerDataSource" runat="server" 
       ConnectionString="<%$ ConnectionStrings: SQLServerinWAConnection %>" 
       InsertCommand="INSERT INTO [Table1] ([Col1], [Col2]) VALUES (@Col1, @Col2)" 
       SelectCommand="SELECT * FROM [Table1]" 
       UpdateCommand="UPDATE [Table1] SET [Col2] = @Col2 WHERE [Col1] = @Col1"
       DeleteCommand="DELETE FROM [Table1] WHERE [Col1] = @Col1">
       <UpdateParameters>
          <asp:Parameter Name="Col2" Type="String" />
          <asp:Parameter Name="Col1" Type="Int32" />
       </UpdateParameters>
       <InsertParameters>
          <asp:formParameter Name="Col1" FormField="TextBox1" />
          <asp:formParameter Name="Col2" FormField="TextBox2" />
       </InsertParameters>
       <DeleteParameters>
          <asp:Parameter Name="Col1" Type="Int32" />
       </DeleteParameters>
    </asp:SqlDataSource>
    
    其中包括该控件的 SELECTINSERTUPDATEDELETE 逻辑。

  6. Default.aspx 中,切换到 Design 模式。单击最近添加的 GridView 控件。在“GridView”控件的“属性”窗口中,向 GridView 控件的标记添加以下特性:DataSourceID="SQLServerDataSource"DataKeyNames="Col1"

  7. 开发人员可根据其应用程序的要求随意设计其 ASP.NET 页。对于本教程,使用 Visual Studio 2013 时,你可能按以下方式修改 Default.aspx 源:

    <%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebRole1._Default" %>
    
    <asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
    
        <div class="jumbotron">
            <h1>ASP.NET</h1>
            <p class="lead">ASP.NET is a free web framework for building great Web sites and Web applications using HTML, CSS, and JavaScript.</p>
            <p><a href="http://www.asp.net" class="btn btn-primary btn-large">Learn more &raquo;</a></p>
        </div>
    
        <div class="row">
            <div class="col-md-4">
                <h2>Getting started                
                </h2>
                <p>
                    ASP.NET Web Forms lets you build dynamic websites using a familiar drag-and-drop, event-driven model.
                A design surface and hundreds of controls and components let you rapidly build sophisticated, powerful UI-driven sites with data access.
                </p>
                <asp:GridView ID="GridView2" runat="server" AutoGenerateDeleteButton="True" AutoGenerateEditButton="True" DataKeyNames="Col1" DataSourceID="SQLServerDataSource">
                    </asp:GridView>
                
                <asp:SqlDataSource ID="SQLServerDataSource" runat="server" 
                    ConnectionString="<%$ ConnectionStrings: SQLServerinWAConnection %>" 
                    InsertCommand="INSERT INTO [Table1] ([Col1], [Col2]) VALUES (@Col1, @Col2)" 
                    SelectCommand="SELECT * FROM [Table1]" 
                    UpdateCommand="UPDATE [Table1] SET [Col2] = @Col2 WHERE [Col1] = @Col1"
                    DeleteCommand="DELETE FROM [Table1] WHERE [Col1] = @Col1">
                <UpdateParameters>
                    <asp:Parameter Name="Col2" Type="String" />
                    <asp:Parameter Name="Col1" Type="Int32" />
                </UpdateParameters>
                <InsertParameters>
                    <asp:formParameter Name="Col1" FormField="TextBox1" />
                    <asp:formParameter Name="Col2" FormField="TextBox2" />
                </InsertParameters>
                <DeleteParameters>
                    <asp:Parameter Name="Col1" Type="Int32" />
                </DeleteParameters>
    </asp:SqlDataSource>
            </div>
                 
        </div>
        </asp:Content>
    
    
    
  8. 将以下标记添加到 Web.config 文件中紧接在 <compilation> 标记中的 <system.web> 标记之后:

    <customErrors mode="Off"/>
    
    这样可确保在运行此应用程序时显示任何错误消息的堆栈跟踪。

  9. (可选步骤)如果要在本地内部开发环境中测试应用程序,请以管理员身份运行 Visual Studio。然后,确保连接字符串指向本地 SQL Server 数据库实例。对于本地测试,请在内部服务器中创建示例数据库和表。然后,按如下所示替换 Web.config 中的 <connectionStrings> 标记。

    <connectionStrings>
        <add name="SQLServerinWAConnection" connectionString="Data Source=tcp:SQLVMInternalIPAddress;Initial Catalog=TestDb;User ID=sqlvmlogin;Password=yourpassword;Encrypt=true;Trusted_Connection=false;TrustServerCertificate=true"
        providerName="System.Data.SqlClient" />
        <add name="SQLServerLocalConnection" connectionString="Data Source=localhost;Initial Catalog=TestDb;Trusted_Connection=true"
        providerName="System.Data.SqlClient" />
    </connectionStrings>
    
    此外,按如下所示更新 Default.aspx 源文件中的 ConnectingString 特性,使其指向本地服务器:

    ConnectionString="<%$ ConnectionStrings:SQLServerLocalConnection %>"
    
    然后,按 F5 运行该解决方案。

可在管理门户中将虚拟机部署到 Azure 虚拟网络。但是,当前无法通过该门户指定 Azure 云服务项目的虚拟网络设置。需要更新 Azure 部署包的 .cscfg 文件中的网络配置设置。在本解决方案中,有两个服务配置文件:

  • ServiceConfiguration.Cloud.csfg:使用此配置文件为应用程序设置 Azure Cloud Deployment 方面的内容。

  • ServiceConfiguration.Local.csfg:此文件用于本地配置,可使用此文件在计算模拟器中调试应用程序。

  1. 为了可在 Web 角色与 SQL Server 虚拟机之间进行通信,需要配置 Web 角色,使其与 SQL Server 虚拟机连接到同一虚拟网络。为此,需要更新 ServiceConfiguration.Cloud.cscfg 文件。在“解决方案资源管理器”中,展开“DataBinding”项目。Visual Studio 中应紧接在“角色”之后显示服务配置文件。打开 ServiceConfiguration.Cloud.cscfg 文件,紧接在最后一个 NetworkConfiguration 标记之后添加以下 Role 元素。

    <NetworkConfiguration>
          <VirtualNetworkSite name="TestVirtualNetwork" />
          <AddressAssignments>
              <InstanceAddress roleName="WebRole1">
                 <Subnets>
                    <Subnet name="FrontEndSubnet" />
               </Subnets>
            </InstanceAddress>
       </AddressAssignments>
     </NetworkConfiguration>
    
    注意,如果没有在服务配置文件的虚拟网络元素部分中指定值,则不会将云服务部署到虚拟网络中。有关详细信息,请参阅 NetworkConfiguration 架构。如果在 Azure 平台中自行部署 DNS 服务器,则还需要在 .csfg 文件中指定 Web/辅助角色实例的 DNS 服务器。

    Warning警告
    确保“VirtualNetworkSite name”“Subnet name”的内容与早先在创建虚拟网络时用过的名称一致。

  2. 设置配置文件中的设置后,请打开“角色属性”对话框窗口以选择要使用哪个配置。为此,请在“解决方案资源管理器”中右键单击“WebRole1”。打开“WebRole1”“属性”窗口。选择“配置”。在“服务配置”框中,选择“云”

  3. F6 以生成解决方案。

    Warning警告
    使虚拟机与 Azure Web/辅助角色处于同一 Azure 虚拟网络中可缩短连接延迟并使连接更安全。

在本节中,将通过使用 Visual Studio 创建包,将 Web 应用程序发布到 Azure。然后,将使用该包在早先用于创建 SQL Server 虚拟机的同一虚拟网络中创建云服务。

  1. 若要将该 Web 应用程序发布到 Azure,请在 Visual Studio 的“解决方案资源管理器”中,右键单击 DataBinding 项目,然后选择“打包”

  2. “将 Azure 应用程序打包”对话框窗口中,确保将“服务配置”设为“云”,并将“生成配置”设为“发布”。然后,单击“打包”按钮。

    Warning警告
    如果出现错误,指示 Visual Studio 无法改写现有的“<项目文件夹>\bin\Release\app.publish”文件夹,则手动删除现有的包文件。然后,重复前两步以创建新包。

  3. 登录到管理门户。

  4. 在页面底部单击“+新建”,然后依次选择“计算”“云服务”“自定义创建”

  5. “创建云服务”窗口中,在“URL”文本框中输入 DataBinding,从“区域/地缘组”选择列表中选择 TestAffinityGroup,然后选中“立即部署云服务包”选项。单击“下一步”箭头以继续。

  6. “发布云服务”窗口中,输入新部署的名称(例如,DataBinding)。浏览到包和配置文件所在的位置(如 <项目文件夹>\bin\Release\app.publish),然后选中“即使一个或多个角色包含单个实例也进行部署”选项。

  7. 要使用 SSL 加密保护应用程序时,可使用“立即添加证书”复选框。有关详细信息,请参阅在 Azure 中为应用程序配置 SSL

  8. 然后,单击选中标记按钮以完成该过程。注意,创建云服务可能耗时几分钟。

  9. 要查看虚拟网络中的所有资源,请在左侧窗格中单击“网络”。然后,单击“TestVirtualNetwork”以打开其仪表板。

  10. 若要运行该应用程序,请在左侧窗格中单击“云服务”。然后,单击 DataBinding 云服务以打开其仪表板。单击“网站 URL”以运行该应用程序。

  11. 如果使用 Visual Studio 2013 生成此 ASP.NET 应用程序,则应用程序运行时应显示以下屏幕。

Warning警告
本教程未展示如何使用 SSL 加密或服务级证书保护云服务。建议始终保护应用程序和其中的连接字符串。

如果要为云服务的用户提供安全交互,请使用服务证书。如果要将云服务直接从 Visual Studio 发布到 Azure,请使用管理证书。有关证书的详细信息,请参阅在 Azure 中管理证书。有关如何配置服务证书的详细信息,请参阅在 Azure 中为应用程序配置 SSL如何在 HTTPS 终结点上配置 SSL 证书

我们还建议先将打包的应用程序部署到 Azure 中的暂存环境,然后再将其移至可在 Internet 上访问该应用程序的生产环境中。有关详细信息,请参阅在 Azure 中暂存应用程序

另请参阅

显示:
© 2014 Microsoft