导出 (0) 打印
全部展开

Azure Tools for Microsoft Visual Studio 入门

更新时间: 2014年11月

通过完成本演练,你将了解如何使用 Microsoft Azure Tools for Visual Studio 开发 Azure 云服务。当你开发 Azure 云服务、移动服务和 ASP.NET Web 应用程序等 Azure 项目时,Azure Tools for Visual Studio 可帮助你提高工作效率。在将项目发布到 Azure 之前,可使用这些工具在本地运行和调试这些项目。你将使用以下过程来开发 Azure 云服务。

note备注
Azure Tools 适用于多个 Visual Studio 版本。本演练显示其中一个 Visual Studio 版本中的 UI。根据你所用的 Visual Studio 和 Azure Tools 版本,你可能会发现,其中的 UI 与本主题中的图示稍有不同。

如果你尚未安装 Azure Tools,此过程可帮助你安装。如果你已安装 Azure Tools,则可以转到下一个过程。

  1. 若要安装 Azure Tools,请在菜单栏上依次选择“文件”、“新建”、“项目”。在“已安装的模板”中,选择 Visual Basic 或 Visual C# 节点,然后选择包含名为“获取适用于 .NET 的 Microsoft Azure SDK”的项目模板的“云”节点。

    note备注
    只有在未安装 Azure Tools 时,才显示此模板。

    VST_QL_InstallTools
  2. 若要下载工具,请选择“确定”按钮。

    此时将显示“Azure Tools”选项卡。

  3. 若要开始下载,请选择“下载 Azure Tools”按钮,以打开 Web 安装程序。按照 Web 安装程序所提供的说明安装最新版本的 Azure Tools 和 Azure SDK。

    note备注
    Azure Tools 需要 Internet Information Services (IIS) 版本 7、7.5、8 或 Express。若要安装 IIS 或 IIS Express,请使用 Microsoft Web 平台安装程序

Important重要提示
可能必须重新启动 Visual Studio,然后才会显示 Azure 项目模板。

Azure 云服务包括执行应用程序所需操作的角色。当你将云服务发布到 Azure 时,每个角色将在云中的虚拟机上运行。有关如何开发 Azure 云服务的详细信息,请参阅Planning and Designing Applications for AzureDeveloping Applications for Azure

  1. 以管理员身份启动 Visual Studio。

  2. 在菜单栏上,依次选择“文件”、“新建”、“项目”

  3. “已安装的模板”中显示的 Visual C# 和 Visual Basic 项目模板中,选择已更新的“云”模板类型。选择“Azure 云服务”。在 .NET Framework 列表中,请选择想要使用的目标框架。

    创建新项目
    note备注
    Visual Studio 2012 和 Visual Studio 2013 支持 .NET Framework 4.5 和 .NET Framework 4。

  4. “名称”文本框中,输入项目名称,然后选择“确定”按钮。

    此时会显示“新建项目”对话框。

    创建新的 Azure 项目。
  5. 若要将 Web 角色添加到解决方案,请在对话框中间选择“ASP.NET Web 角色”,然后选择右箭头 (>)。可将多个 Web 和辅助角色添加到 Azure 解决方案。

    这些角色将显示在对话框的“Azure 解决方案”窗格中。

  6. 若要将 WebRole1 重命名为 MyWebRole,请将指针移至 WebRole1 并选择右侧的铅笔图标。键入新的名称,然后选择“输入”按钮。(键盘操作:按 Tab 将焦点移到“WebRole1”,然后按 F2 进行编辑。)

  7. 选择“确定”按钮。此时将出现“新建 ASP.NET 项目”对话框。选择“Web 窗体”

    选择 Web 窗体。
  8. 若要创建新 Azure 项目,请选择“确定”按钮。

    现在,你有一个具有以下两个项目的解决方案:

    • Azure 云服务项目

    • 作为 ASP.NET Web 应用程序的 Web 角色项目

    “解决方案资源管理器”视图应类似于下图。

    VST_QL_SolutionExplorer

在以下过程中,你将向 Web 角色项目中添加代码。此 Web 项目将数据添加到 blob 存储并写入诊断消息以帮助你调试应用程序。然后,你可在本地运行此代码,以便在将此代码发布到 Azure 之前对其进行测试。

  1. 若要打开设计视图中的 default.aspx,请打开 default.aspx 文件的快捷菜单,然后选择“视图设计器”

  2. 若要打开工具箱中,请选择工具箱图标。若要将按钮添加到页面,请打开“工具箱”视图中的“按钮”的快捷菜单并选择“复制”。在“Default.aspx”的编辑窗口中,请选择“设计”,然后打开快捷菜单择并选择“粘贴”。若要为按钮添加单击事件处理程序,请双击添加到页面的新按钮。

    VST_QL_DefaultPage
  3. 在名为 “Button1_Click” 的单击事件处理程序中,请添加将文本上载到 blob 服务的代码并添加诊断消息。若要添加所需的 Azure 类型,请将以下 using 语句添加到 default.aspx.cs。

    using Microsoft.WindowsAzure; using Microsoft.WindowsAzure.Storage; using Microsoft.WindowsAzure.ServiceRuntime; 
    
  4. 添加以下代码来完成这些任务。

    • 创建 CloudStorageAccount 实例的配置设置中的连接字符串

    • 创建 blob 容器

    • 将文本 blob 上载到该容器

    • 添加 Web 角色的诊断消息

     protected void Button1_Click(object sender, EventArgs e) {     // Setup the connection to Azure Storage     var storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("MyConnectionString"));     var blobClient = storageAccount.CreateCloudBlobClient();     // Get and create the container     var blobContainer = blobClient.GetContainerReference("quicklap");     blobContainer.CreateIfNotExists();     // upload a text blob     var blob = blobContainer.GetBlockBlobReference(Guid.NewGuid().ToString());     byte[] data = new byte[] { 0, 1, 2, 3, 4, 5 };     blob.UploadFromByteArray(data, 0, data.Length);     // log a message that can be viewed in the diagnostics tables called WADLogsTable     System.Diagnostics.Trace.WriteLine("Added blob to Azure Storage"); } 
    

  5. 若要将断点添加到你刚刚在 Button1_Click 事件处理程序中插入的代码行,请打开代码行 blob.UploadFromByteArray(data, 0, data.Length) 的快捷菜单,然后选择“断点”>“插入断点”(键盘操作:F9)。

  6. 在 WebRole.cs 中,将以下代码添加到 OnStart() 方法的开头。

    public override bool OnStart()     {         // For information on handling configuration changes         // see the MSDN topic at http://go.microsoft.com/fwlink/?LinkId=166357.         //Get the configuration object         DiagnosticMonitorConfiguration diagObj = DiagnosticMonitor.GetDefaultInitialConfiguration();           //Set the service to transfer logs every second to the storage account         diagObj.Logs.ScheduledTransferPeriod = TimeSpan.FromMinutes(1);          //Start Diagnostics Monitor with the new storage account configuration         DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", diagObj);          return base.OnStart();     }          
    

    此代码将导致诊断监视器每秒传输一次日志并启动监视器。诊断监视器使用当创建 Azure 项目时添加的连接字符串。

note备注
会将 Azure 跟踪侦听器作为角色模板的一部分添加到 web.config。该跟踪侦听器会将跟踪和调试消息路由到 Azure Diagnostics 系统。

可生成应用程序,然后使用 Azure Tools 的部分计算和存储模拟器,运行并调试此本地应用程序。在将应用程序部署到 Azure 之前,这可让你开发本地应用程序。可使用模拟器查看添加到存储的数据和任意诊断信息。

  1. 若要生成项目,请打开 Azure 项目的快捷菜单,然后选择“生成”

  2. 若要查看生成输出,请打开 Azure 项目的快捷菜单,然后选择“在文件资源管理器中打开文件夹”。转到 bin\Debug 目录以显示生成输出。

    VST_QL_ViewInWindowsExplorer

  1. 若要更改角色设置,请在“解决方案资源管理器”“角色”节点下,为云服务项目选择一个角色,打开该角色的快捷菜单,然后选择“属性”

    这将显示该 Web 角色的属性页。使用属性页可以编辑服务定义文件和服务配置文件中的每个角色级别的元素和特性。

    Visual Studio Azure Project 1.3 设置页
    Important重要提示
    如果要在本地运行 Azure 云服务以对它进行调试,并且要将该云服务发布到 Azure,则通常需要为角色设置指定不同的值。例如,你可能需要在 Azure 中运行某个角色的四个实例,但在本地环境中调试时,只需运行一个实例。现在,可以在云服务项目中保存不同的服务配置,这些配置使你能够定义这些不同的值。然后,可选择要使用的配置。有关更多信息,请参见配置 Azure 项目

  2. 若要同时更改所有服务配置,请在“服务配置”列表中选择“所有配置”

  3. 若要更改“实例计数”文本框中的实例计数,请键入 2

    当你这样做时,将显示警告,指示你需要从使用快速模拟器切换到使用全功能模拟器。现在忽略此警告。将在此过程的后面部分执行该操作。

  4. 若要将 Visual Studio 配置为在你运行或调试 Azure 云服务时使用本地存储模拟器,必须将使用的连接字符串添加到按钮单击事件处理程序。使用以下步骤来执行此操作。

    1. “设置”选项卡,选择“添加设置”按钮。

    2. “名称”文本框中,键入 MyConnectionString

    3. “类型”组合框中,选择连接字符串

    4. 选择“值”文本框中的省略号 (...)。将显示“创建存储连接字符串”对话框。选择“Microsoft Azure 存储模拟器”选项,然后选择“确定”

      Azure 存储帐户连接字符串
  5. 在本演练结束时,如果你已准备好将云服务发布到 Azure,则可以使用此“设置”选项卡,将“云”服务配置(名为 ServiceConfiguration.Cloud.cscfg)的此连接字符串的值更改为使用实际的 Azure 存储帐户,而非本地存储模拟器。然后,可以在发布 Azure 云服务时使用此服务配置。

  6. 若要调试角色的多个实例(因为你在前面指定了两个实例),需要将 Azure 云项目从使用 Emulator Express 切换到使用全功能模拟器。在 Azure 云服务的快捷菜单上,选择“属性”

  7. 选择 Web 选项卡,然后选择“使用全功能模拟器”选项。

    Azure 完整模拟器选项
  8. 在工具栏,选择“保存”图标。

  1. 在菜单栏中选择“调试”>“启动调试”(键盘操作:F5)。

    Important重要提示
    如果未将 Azure 云服务项目设置为启动项目,当你单击按钮以触发断点时,将出现以下错误:“外部组件引发了异常”。发生错误的原因是因为 Azure API 调用必须初始化发展织物。若要将云服务项目设置为启动项目,请打开云服务项目的快捷菜单,然后选择“设置为启动项目”

    启动存储模拟器和 Visual studio 的计算模拟器。使用这些模拟器,可以在将云服务发布到 Azure 之前,在本地系统中运行和调试该云服务。

    note备注
    通知区域中会显示一个 Azure 图标,你可以使用它来查看计算模拟器 UI 和存储模拟器 UI,或关闭这些服务。

    Warning警告
    计算模拟器有两个版本:完整版和速成版。在某些情况下,当你使用其中一个模拟器时,可能会显示以下错误消息:“无法确定模拟器的运行模式。请确保你有足够的权限。”如果看到此错误,则表示你运行模拟器时所用的权限集与你当前在 Visual Studio 中使用的权限集不同。例如,如果你使用不同的权限集重新启动 Visual Studio,但未停止模拟器,则可能会发生这种情况。若要解决此问题,只需重新启动计算模拟器即可。可以在任务栏中使用 Azure 图标的快捷菜单来停止和启动模拟器。

  2. 如果首次使用存储模拟器,则会显示“开发存储初始化”对话框。初始化过程完成时,选择“确定”按钮关闭该对话框。

    浏览器会自动启动,并且指向 ASP.NET Web 站点。

    在浏览器中新建 ASP.NET 网页。
  3. 若要管理本地部署,请打开在通知区域中 Azure 图标的快捷方式菜单,然后选择“显示计算模拟器用户界面”

    显示 Azure 计算模拟器

    此时将显示“Azure 计算模拟器”

  4. 选择“MyWebRole”以显示 Web 角色的实例,如下图所示。选择要查看只该单个实例的特定实例。

    note备注
    其中存在两个 Web 角色实例,因为我们将角色实例计数设置为 2。任一实例都可处理请求。

    运行 2 个 Web 角色的 Azure 计算模拟器
  5. 若要触发在调试器中设置的断点,请选择所创建的按钮。

  6. 若要逐步执行代码行,直到已将数据上载到 blob 并将消息记录到诊断表,请按 F10 三次。

  7. 若要查看添加的 blob 数据,请在菜单栏上选择“视图”、“服务器资源管理器”。打开树中的“Azure”节点,然后选择“存储”、“开发”、“Blob”节点。当系统提示你登录时,请关闭该对话框。双击“quicklap”节点,如下图所示:

    VST_QL_WAStorageNode

    “quicklab”选项卡中显示 blob 中的数据。

  8. 若要查看数据,请双击显示在列表中的条目。

  9. 若要查看登录的诊断消息,请在菜单栏上选择“视图”、“服务器资源管理器”(如果它不可见)。打开树中的“Azure”节点,然后选择“存储”、“开发”、“表”节点。双击“WADLogsTable”节点。

    诊断消息将显示在 WADLogsTable 选项卡中。消息的数据是在表中的最后一列。

  10. 若要查看 Azure 的活动日志,请在菜单栏上选择“视图”、“其他 Windows”、“Azure 活动日志”。使用活动日志可以跟踪长时间运行的操作的状态。你将看到与下载的文本 Blob 相对应的条目。

  11. 如果你使用的是存储模拟器,请在通知区域中打开 Azure 图标的快捷菜单,然后选择“显示存储模拟器 UI”以显示以下命令窗口,以便控制正在运行的存储服务。

    Azure 存储仿真器

使用 Azure Tools for Visual Studio,可以直接从 Visual Studio 将云服务发布到 Azure。

在发布 Azure 云服务之前,必须已具备 Microsoft 帐户Azure 订阅。此外,必须在 Azure 管理门户中设置应用程序将要使用的云服务和存储帐户。有关如何设置这些服务的详细信息,请参阅 设置从 Visual Studio 中发布云服务所需的服务

发布云服务时,可以为该服务选择部署环境。你还必须选择用来存储部署的应用程序软件包的存储帐户。部署后,从存储帐户中删除应用程序包。

可以从“服务器资源管理器”连接到 Azure 订阅,以简化发布到 Azure 的过程。在低于 2.2 的 Azure SDK 版本中,需要下载一个订阅文件(.publishsettings 文件),并在发布云服务或者连接到存储帐户或其他资源时引用该文件。如果你正在使用订阅文件,则仍可以在 Azure SDK 2.2 中使用这些文件,但是,如果使用下一过程中的步骤连接到 Azure,则不再需要管理订阅文件。

  1. “服务器资源管理器”中选择 Azure 节点,打开其快捷菜单,然后选择“连接到 Azure”

    连接到 Windows Azure
  2. 使用登录到管理门户所用的凭据登录到 Azure。若要最大程度地减少提供密码的次数,请选中“使我保持登录状态”复选框。

    在关闭该窗口时,Visual Studio 将保存你的连接,因此当你再次启动 Visual Studio 时,你仍会保持登录状态。

  3. (可选)如果你想要从 Azure 中注销,请在“服务器资源管理器”中打开 Azure 节点的快捷菜单,然后选择“管理订阅”。此时将出现“管理 Azure 订阅”对话框。若要注销,请选择“注销”按钮,然后选择“关闭”按钮。除非你想要使用另一个订阅登录,否则不需要注销。

  1. 如果你需要更改应用程序中的任意连接字符串,以便使用 Azure 存储服务,请按照下列步骤:

    1. 解决方案资源管理器中,打开 Azure 云服务项目中用于访问存储服务的 Web 角色的快捷菜单(如本演练前面部分所做的那样),然后选择“属性”

    2. 在角色的属性页,选择“设置”选项卡。

    3. 若要仅更改“云”配置的服务配置设置,请在“服务配置”列表中选择“云”。当发布 Azure 应用程序时,可使用此服务配置。

    4. 若要更改“云”配置的连接字符串设置,请选择该设置旁边的“…”按钮。

      如果你未登录到 Azure,将要求你登录。

      将显示“创建存储连接字符串”对话框。

      Azure 存储帐户云连接字符串
    5. “连接时使用”下,选择“你的订阅”选项。

    6. “订阅”列表中,选择你的订阅。如果列表未包含所需订阅,请选择“下载发布设置”链接。

    7. “帐户名称”列表中,选择存储帐户名称。

      当你连接到 Azure 时,Azure Tools 将自动获取存储帐户凭据,或者使用订阅文件(.publishsettings 文件)来获取凭据。若要手动指定存储帐户设置,请从管理门户中获取存储帐户的名称和主密钥,然后选择“手动输入的凭据”

    8. 你可以决定希望服务使用哪种方式来访问你的存储帐户。如果要通过使用订阅连接到你的存储帐户,唯一可以更改的设置是是否对存储连接字符串使用 HTTPS。但是,如果你选择使用手动输入的凭据进行连接,则可以选择以下设置。

      • “使用 HTTP”。这是标准选项。例如,http://<account name>.blob.core.windows.net

      • “使用 HTTPS”。这适用于安全连接。例如,https://<accountname>.blob.core.windows.net

      • “指定自定义终结点”。这适用于三种服务中的任何一种。然后,可将这些终结点输入特定服务的字段中。

        note备注
        如果你需要附加功能,则可以选择创建自定义终结点。例如,你可以指定存储服务终结点,使之包含通过 Blob 服务为存储帐户注册的自定义域名。此外,你可通过共享访问签名仅授予对单个容器中 blob 资源的访问。有关如何创建自定义终结点的详细信息,请参阅 配置 Azure 连接字符串

      就本练习来说,请使用“你的订阅”选项进行连接。

    9. 通过选择“确定”按钮保存连接字符串更改。

      在保存这些更改后,你可以使用已更新的这个服务配置通过 Visual Studio 生成并运行 Azure 应用程序。然后,你可以验证该应用程序是否依据 Azure 存储服务正常工作。有关怎样选择服务配置来进行本地运行和调试的详细信息,请参阅操作方法:使用 Visual Studio 配置 Azure 云服务项目

  2. 若要发布云服务,请打开 Azure 项目的快捷菜单,其中应包含你在解决方案资源管理器中的角色。然后选择“发布”,如下图所示。

    VST_PublishMenu

    随即显示“发布 Azure 应用程序”对话框。

  3. 如果你尚未登录,请选择“登录”按钮,然后提供 Azure 用户名和密码。

    这是发布向导的一个屏幕
  4. “选择订阅”列表中,选择要用此部署的订阅。

    如果选择“<管理…>”,则可以创建、编辑或删除订阅。

  5. 订阅信息设置完毕后,选择“下一步”按钮,打开“设置”页,然后选择“常规设置”选项卡。

    发布向导常用设置
  6. “环境”列表中选择“生产”。这是用于托管云服务的部署环境。默认情况下,这些环境包括“过渡”和“生产”。

    可以部署到空环境,也可以部署到其他部署正使用的环境。

  7. “生成配置”列表中,选择所需配置,例如“发布”

  8. “服务配置”列表中,选择“云”

  9. 若要为此部署环境配置远程桌面连接,以便可以连接到运行某个角色的每个实例的虚拟机,请选中“为所有角色启用远程桌面”复选框,并创建登录到虚拟机时要使用的帐户凭据。

    有关详细信息,请参阅将远程桌面与 Azure 角色一起使用

  10. 选择“高级设置”选项卡。

    发布向导高级设置
  11. “存储帐户”列表上,选择用于在部署过程中,将服务包上载到此帐户的帐户。

    note备注
    此存储帐户可以不是计划用于应用程序数据的那个存储帐户。

  12. 如果希望在发布应用程序的新生成时,不要自动覆盖现有部署,请选择“部署更新”复选框。

    有关部署更新设置的详细信息,请参阅发布 Azure Application 向导

  13. 你的部署创建一个默认名称。若要更改此名称,可以在“部署标签”中,输入新名称或修改默认名称。此名称在 Azure 管理门户中使用。

  14. 若要将日期和时间追加到部署标签,请选择“追加当前日期和时间”复选框。

  15. 若要为此部署启用 IntelliTrace,请选择“启用 IntelliTrace”复选框。

    IntelliTrace 为你的应用程序提供调试信息,你可用于在 Visual Studio Ultimate 中逐步调试你的代码。有关详细信息,请参阅使用 IntelliTrace 进行调试

    note备注
    仅当从 Visual Studio Ultimate 中发布应用程序时,才可启用 IntelliTrace。

  16. 若要为此部署启用分析以确定 Azure 云服务的性能,请选中“启用分析”复选框。分析可提供你的应用程序的性能信息。有关如何配置分析设置的详细信息,请参阅 测试云服务的性能

    Important重要提示
    在发布 Azure 云服务时,可以启用 IntelliTrace 或分析。都无法启用。

  17. (可选)如果从 Visual Studio 中进行发布,且已安装最新版本的 Azure Tools,则还可以为所有 Web 角色启用 Web 部署。有关执行此操作的要求和详细步骤,请参阅To Enable Web Deploy When You Publish Your Application

  18. 选择“下一步”按钮复查设置。

    发布向导摘要页
  19. 若要发布 Azure 云服务,请选择“发布”按钮。Visual Studio 启动部署过程。你可以从“Azure 活动日志”窗口中查看部署的进度。当启动部署过程时,将自动显示此日志。可在活动日志中展开行项以显示详细信息,如下图所示。

    VST_AzureActivityLog
  20. (可选)若要取消部署过程,请打开活动日志中的行项目的快捷菜单,并选择“取消并删除”。这将阻止部署过程并从 Azure 中删除部署环境。

    note备注
    若要在已完成部署后删除此部署环境,必须使用管理门户

  21. (可选)启动角色实例后,Visual Studio 将自动在“服务器资源管理器”中显示部署环境节点。可以从此位置查看单个角色实例的状态。有关如何使用“服务器资源管理器”来查看部署的详细信息,请参阅使用服务器资源管理器,查看云服务的状态

    下图显示了一些角色实例,其中一个实例仍处于“忙”状态,因为仍在对它进行初始化。

    VST_DeployComputeNode
  22. 若要在部署后访问你的云服务,请在“Azure 活动日志”中显示“已完成”状态时,选择部署旁边的箭头。若要随云服务启动浏览器,请选择显示在部署详细信息中的超链接。

另请参阅

显示:
© 2014 Microsoft