Windows Azure Tools for Microsoft Visual Studio 入门
此演练将向您展示如何使用 Windows Azure Tools for Visual Studio。 开发 Windows Azure 应用程序时,这些工具将有助于提高效率。 在将应用程序发布到 Windows Azure 前,可使用工具以运行并调试本地应用程序。 可使用以下程序来完成这些任务:
本过程假定您尚未安装 Windows Azure Tools。 如果您已安装 Windows Azure Tools,则开始有关如何创建 Windows Azure 应用程序的下一步。
安装 Windows Azure 工具
若要安装 Windows Azure 工具,请在菜单栏上选择“文件、新建、项目”。 在“已安装的模板”中,选择 Visual Basic 或 Visual C# 节点,再依次选择包含名为“启用 Windows Azure 工具”项目模板的“云”节点。
注意如果在此计算机之前安装“Windows Azure 工具”,则此模板将显示在列表中。

若要下载工具,请选择“确定”按钮。
显示“Windows Azure 工具”选项卡。
若要开始下载,请选择“下载 Windows Azure 工具”按钮。 现在显示 web 安装程序。 按照 web 安装程序所提供的说明安装最新版本的 Windows Azure 工具和 Windows Azure SDK。
注意Windows Azure Tools 要求 Internet Information Services (IIS) 版本 7 或更高版本或者 IIS Express。 若要安装 IIS 或 IIS Express,请使用 Microsoft Web 平台安装程序。
重要事项 |
|---|
若要更新模板以显示“Windows Azure 项目”模板,可能需要重新启动 Visual Studio,然后您可以使用以下过程中的步骤。 |
Windows Azure 应用程序包含执行应用程序所需操作的角色。 当您发布应用程序到 Windows Azure 时,每个角色是在云计算的虚拟机上运行。 有关如何开发 Windows Azure 应用程序的详细信息,请参阅 Planning and Designing Applications for Windows Azure and Developing Applications for Windows Azure。
创建 Windows Azure 应用程序:
以管理员身份启动 Visual Studio。
若要在菜单栏上创建 Windows Azure 项目,请选择“文件、新建、项目”。
在“已安装的模板”中显示的 C# 和 VB 项目模版上,请选择更新的“云”模版类型。 选择“Windows Azure 项目”。 在.NET Framework 列表中,请选择想要使用的目标框架。
注意Visual Studio 2012 支持 .NET Framework 4.5 和 .NET Framework 4,而 Visual Studio 2010 支持 .NET Framework 4 和 the .NET Framework 3.5。
在“名称”文本框中,输入您的项目名称并选择“确定”按钮。
显示“新的 Windows Azure 项目”对话框。
若要将 web 角色添加到解决方案,请选择ASP.NET Web Role,然后选择右箭头。 可将多个 web 和辅助角色添加到 Windows Azure 解决方案。
角色显示在“Windows Azure 解决方案”对话框的窗格中。
若要将 WebRole1 重命名为 MyWebRole,请将指针移至 WebRole1 并选择右侧的铅笔图标。 键入新的名称,然后选择“输入”按钮。 (键盘: 选项卡将焦点移动到“WebRole1”然后按“F2”编辑。)
若要创建新 Windows Azure 项目,请选择“确定”按钮。
现在,您有一个具有以下两个项目的解决方案:
Windows Azure 项目
ASP.NET Web 应用程序的 Web 角色
“解决方案资源管理器”将类似于下图:

以下过程将代码添加到 web 角色项目: 此 web 项目将数据添加到 blob 存储并写入诊断消息以帮助您调试应用程序。 在将代码发布到 Windows Azure 之前,可在本地运行此代码。
将代码添加到 Web 角色项目
若要打开设计视图中的 default.aspx,请打开 default.aspx 文件的快捷菜单,然后选择“视图设计器”。
若要打开工具箱中,请选择工具箱图标。 若要将按钮添加到页面,请打开“工具箱”视图中的“按钮”的快捷菜单并选择“复制”。 在“Default.aspx”的编辑窗口中,请选择“设计”,然后打开快捷菜单择并选择“粘贴”。 若要为按钮添加单击事件处理程序,请双击添加到页面的新按钮。

在名为 “Button1_Click” 的单击事件处理程序中,请添加将文本上载到 blob 服务的代码并添加诊断消息。 若要添加所需的 Windows Azure 类型,请将以下 using 语句添加到 default.aspx.cs:
using Microsoft.WindowsAzure; using Microsoft.WindowsAzure.StorageClient; using Microsoft.WindowsAzure.ServiceRuntime;
添加以下代码来完成这些任务:
创建 CloudStorageAccount 实例的配置设置中的连接字符串
创建 blob 容器
将文本 blob 上载到该容器
添加 web 角色的诊断消息
protected void Button1_Click(object sender, EventArgs e) { // Setup the connection to Windows Azure Storage var storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("MyConnectionString")); var blobClient = storageAccount.CreateCloudBlobClient(); // Get and create the container var blobContainer = blobClient.GetContainerReference("quicklap"); blobContainer.CreateIfNotExist(); // upload a text blob var blob = blobContainer.GetBlobReference(Guid.NewGuid().ToString()); blob.UploadText("Hello Windows Azure"); // log a message that can be viewed in the diagnostics tables called WADLogsTable System.Diagnostics.Trace.WriteLine("Added blob to Windows Azure Storage"); }若要将断点添加到刚刚在 Button1 单击事件处理程序中的代码线,请打开代码线为“blob.UploadText("Hello Windows Azure")”的快捷菜单,然后选择“断点,插入断点”。
添加代码设置诊断监视器以每秒传输日志和启动监视器。 诊断监视器使用当创建 Windows Azure 项目时添加的连接字符串。 必须在 WebRole.cs 中的 OnStart 方法的开头添加以下代码:
//Get the configuration object DiagnosticMonitorConfiguration diagObj = DiagnosticMonitor.GetDefaultInitialConfiguration(); //Set the service to transfer logs every second to the storage account diagObj.Logs.ScheduledTransferPeriod = TimeSpan.FromSeconds(1); //Start Diagnostics Monitor with the new storage account configuration DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", diagObj);
注意如果在 Windows Azure 平台上进行调试,您不会希望每秒钟都转移记录。 此值只为演练设置。
注意 |
|---|
作为角色模板的一部分,将 Windows Azure 跟踪侦听器添加到 web.config 中。 该跟踪侦听器将跟踪和调试消息路由到 Windows Azure 诊断系统。 |
可生成应用程序,然后使用 Windows Azure 工具的部分计算和存储模拟器,运行并调试此本地应用程序。 在将应用程序部署到 Windows Azure 之前,这可让您开发本地应用程序。 可使用模拟器查看添加到存储的数据和任意诊断信息。
生成 Windows Azure 应用程序
若要生成项目,请打开 Windows Azure 项目的快捷菜单,然后选择“生成”。
若要查看生成输出,请打开 Windows Azure 项目的快捷菜单,然后选择“在 Windows 资源管理器中打开文件夹”。 转到 bin\debug 目录以显示生成输出。

修改每个角色的设置
若要修改设置,请在“角色”节点下,为解 Windows Azure 项目选择一个“角色”,并打开角色的快捷菜单,然后选择“属性”。
这将显示该 Web 角色的属性页。 使用属性页可以编辑服务定义文件和服务配置文件中的每个角色级别的元素和特性。

重要事项如果要在本地运行 Windows Azure 应用程序来调试它,并且要将该应用程序发布到 Windows Azure 中,这通常需要为角色设置不同值。 例如,您可能要在 Windows Azure 中运行一个角色中的四个实例,但当您在本地环境中进行调试时只运行一个实例。 在 Windows Azure 项目中,现在可有多种服务配置,这些服务配置使您能定义这些不同的属性。 然后,可选择要使用的选项。 有关执行此操作的详细信息,请参阅 配置 Windows Azure 项目。
若要对所有服务配置进行更改,请在“服务配置”列表中选择“所有配置”。
若要更改“实例计数”文本框中的实例计数,请键入 2。
若要移动到设置选项卡,请选择“设置”。 (键盘:选项卡“配置”然后选择向下箭头。)
当运行或调试 Windows Azure 应用程序时,若要配置 Visual Studio 以使用本地存储模拟器,必须将使用的连接字符串添加至按钮单击事件处理程序。 使用以下步骤来执行此操作:
在“设置”选项卡,选择“添加设置”按钮。
在“名称”文本框中,键入 MyConnectionString。
在“类型”组合框中,选择连接字符串。
选择“值”文本框中的省略号。 显示“存储帐户连接字符串”对话框。 选择“使用 Windows Azure 存储模拟器” ,然后选择 “确定”按钮。
在工具栏,选择“保存”图标。
在本演练结束时准备将其发布到 Windows Azure,可以使用此“设置”选项卡,为“云”服务器配置更改连接字符串的至以便使用 Windows Azure 存储帐户(称为 ServiceConfiguration.Cloud.cscfg)。 当发布此 Windows Azure 应用程序时,可使用此服务配置。
调试 Windows Azure 项目
在菜单栏上选择“调试,开始调试”(键盘: F5)。
重要事项如果 Windows Azure 项目未设置为启动项目,则当单击按钮触发断点时,将出现以下错误:“外部组件发生异常”。 发生错误的原因是因为 Windows Azure API 调用必须初始化发展织物。 若要将 Windows Azure 项目设置为启动项目,请打开 Windows Azure 项目的快捷菜单,然后选择“设置为启动项目”。
启动存储模拟器和 Visual studio 的计算模拟器。 在将应用程序部署到 Windows Azure 之前,这些模拟器可让您运行和调试本地 Windows Azure 应用程序。
注意Windows Azure 图标显示在可让您查看计算模拟器 UI 和存储仿真器 UI,或关闭这些服务的通知区域中。
如果首次使用存储模拟器,则会显示“开发存储初始化”对话框。 初始化过程完成时,选择“确定”按钮关闭该对话框。
浏览器会自动启动,并且指向 ASP.NET web 站点。
若要管理本地部署,请打开在通知区域中 Windows Azure 图标的快捷方式菜单,然后选择“显示计算模拟器用户界面”。
显示“ Windows Azure 计算模拟器”。
选择“MyWebRole”以显示 web 角色的实例,如下图所示。 选择要查看只该单个实例的特定实例。
注意其中存在两个 web 角色实例,因为我们将角色实例计数设置为 2。 任一实例都可处理请求。

若要触发在调试器中设置的断点,请选择所创建的按钮。
若要单步执行的代码行,直到将文本上载到了 blob 并且将消息记录到了诊断程序表,请按“F10”三倍。
若要查看添加的 blob 数据,请在菜单栏上选择“视图,服务器资源管理器”。 打开树中的“Windows Azure 存储”节点,然后选择“开发”、“Blob”节点。 双击“quicklap”节点,如下图所示:

在“quicklab”选项卡中显示 blob 中的数据。
若要查看数据,请双击显示在列表中的条目。
若要查看登录的诊断消息,请在菜单栏上选择“视图、 服务器资源管理器”(如果它不可见)。 打开树中的“Windows Azure 存储”节点,然后选择 “开发”、 Tables节点。 双击“WADLogsTable”节点。
诊断消息显示在WADLogsTable选项卡中。 消息的数据是在表中的最后一列。
若要查看 Windows Azure 的活动日志,请在菜单栏上选择“视图、其他 Windows、Windows Azure 活动日志”。 使用活动日志可以跟踪长时间运行的操作的状态。 您将看到与下载的文本 Blob 相对应的项。
如果使用存储模拟器,请在通知区域中打开 Windows Azure 图标的快捷菜单,然后选择“显示存储模拟器用户界面”以显示以下对话框,该对话框允许控制运行的存储服务以及重置所有的数据。

通过使用 Windows Azure Tools for Microsoft Visual Studio,可从 Visual Studio 中直接将 Windows Azure 应用程序发布到 Windows Azure。
在可以发布 Windows Azure 应用程序之前,您必须具有 Microsoft account(Microsoft 帐户)和 Windows Azure subscription(Windows Azure 订阅)。 此外,您必须在 Windows Azure 管理门户中设置托管服务和存储账户以供应用程序使用。 有关如何设置这些服务的更多信息,请参见 为从 Visual Studio 中发布云服务设置所需的服务。
发布时,可以为您的托管服务选择部署环境。 您还必须选择用来存储部署的应用程序软件包的存储帐户。 部署后,从存储帐户中删除应用程序包。
发布 Visual Studio 中的 Windows Azure 应用程序
如果您需要更改应用程序中的任意连接字符串,以便使用 Windows Azure 存储服务,请按照下列步骤:
在解决方案资源管理器中,请在访问存储服务的 Windows Azure 项目中打开每个角色的快捷菜单,并选择“属性”。
在角色的属性页,选择“设置”选项卡。
若只为请为“云”配置修改服务配置设置,请在“服务配置”选择“云”。 当发布 Windows Azure 应用程序时,可使用此服务配置。
若要修改任何连接字符串设置,请选择设置旁边的…按钮。
将显示“创建存储连接字符串”对话框。
在“连接时使用”下,请选择“订阅”选项。
在“订阅”列表中,请选择您的订阅。 如果该列表不包括想要的订阅,则选择“下载发布设置”连接。
在“存储帐户的名称”列表中,请选择存储帐户名称。
Windows Azure 工具通过使用 .publishsettings 文件自动获得存储帐户凭据。 若要手动指定您的存储帐户设置,从 Management Portal(管理门户)中获取您的存储帐户名和主密钥,然后选择“手动输入的凭据”。
您必须从以下选项中选择其中之一来确定该服务访问存储帐户的方式:
“使用 HTTP”。 这是标准选项。 例如, http://<account name>.blob.core.windows.net。
将“使用 HTTPS”用于安全连接。 例如, https://<accountname>.blob.core.windows.net。
将“指定自定义终结点”用于三种服务中的各个服务。 然后,可将这些终结点键入特定服务的字段中。
注意如果创建自定义终结点,这允许创建更为复杂的连接字符串。 当您使用此字符串格式时,您可以指定包含已为 Blob 服务的存储帐户注册的自定义域名存储服务终结点。 此外,您可通过共享访问签名仅授予对单个容器中 blob 资源的访问。 有关如何创建自定义终结点的详细信息,请参阅 How to Configure Connection Strings。
若要保存这些连接字符串更改,请选择“确定” 按钮。
在保存这些更改后,您可以使用更新的服务配置来生成并运行 Visual Studio 中的 Windows Azure 应用程序以及确保此应用程序按预期方式针对 Windows Azure 存储服务运行。 有关怎样选择服务配置来进行本地运行和调试的更多信息,请参见 如何:使用 Visual Studio 配置 Windows Azure 项目。
若要发布应用程序,请打开 Windows Azure 项目的快捷菜单,该快捷菜单包含在解决方案资源管理器中的角色。 然后选择“发布”,如下图所示:

出现“发布 Windows Azure 应用程序”对话框。
如果尚未使用该向导,则选择“登录下载凭据”链接,在提示时登录到该门户,提供您的 Windows Azure 用户名和密码,然后将这些设置保存到文件。 您将在下一步中导入设置文件。

警告设置文件包含证书信息。 将文件保存到安全位置。
选择“导入”按钮填充订阅列表。
注意设置文件具有 .publishsettings 扩展名。
在“选择订阅”列表中,选择要用此部署的订阅。
如果选择<Manage…>,则可以创建、编辑或删除订阅。
在您对您的订阅信息感到满意时,选择“下一步”按钮来打开“设置”页,然后选择“常规设置”选项卡。
在“环境”列表中,选择用于承载您的云服务的部署环境。
您可以部署到为空或其他部署正使用的环境。
在“生成配置”列表中,选择想要的配置(如,“发布”)。
在“服务配置”列表中,选择“云”。
若要配置此部署环境的远程桌面连接,以便可以连接到正运行角色各实例的虚拟机,选择“配置远程桌面连接”链接。
有关更多信息,请参见将远程桌面与 Windows Azure 角色一起使用。
选择“高级设置”选项卡。
在“存储帐户”列表上,选择该帐户,用于将服务包上载到作为部署过程一部分的此帐户。
注意此存储帐户不得为计划用于您的应用程序数据的存储帐户。
如果在应用程序的新生成时不想自动覆盖现有的部署,则选择“部署更新”复选框。
F有关部署更新设置的详细信息,请参阅 发布 Windows Azure Application 向导。
您的部署创建一个默认名称。 若要更改此名称,可以在“部署标签”中输入新名称或修改默认名称。 此名称用在“管理门户”中。
若要向该部署的标签附加时间和日期,选择“附加当前时间和日期”复选框。
若要启用此部署的 IntelliTrace,选择“启用 IntelliTrace”复选框。
IntelliTrace 为您的应用程序提供调试信息,您可用其从“ Visual Studio 旗舰版”中逐步调试您的代码。 有关详细信息,请参阅 使用 IntelliTrace 进行调试。
注意仅在从 Visual Studio Ultimate 中发布您的应用程序时启用 IntelliTrace。
若要为此部署启用分析以确定 Windows Azure 应用程序的性能,请选择“启用分析”复选框。 分析可提供您的应用程序的性能信息。 有关如何配置分析设置的详细信息,请参阅 测试云服务的性能。
重要事项发布 Windows Azure 应用程序时,可启用 IntelliTrace 或性能分析。 都无法启用。
(可选)如果您发布从 Visual Studio 2010 和安装最新版本的 Windows Azure 工具,您还可以为您网站的所有角色启用 Web 部署。 有关执行此操作的要求和详细步骤,请参见 发布应用程序时要启用 Web 部署。
若要发布您的 Windows Azure 应用程序,请选择“发布”按钮。 Visual Studio 启动部署过程。 您可以从“Windows Azure 活动日志”窗口中查看部署的进度。 当启动部署过程时,将自动显示此日志。 可在活动日志中展开行项以显示详细信息,如下图所示:

(可选)若要取消部署过程,请打开活动日志中的行项目的快捷菜单,并选择“取消并删除”。 这将阻止部署过程并从 Windows Azure 中删除部署环境。
注意若在此部署环境部署后要将其删除,必须使用管理门户。
(可选)在角色实例已开始后,Visual Studio 将自动显示在“服务器资源管理器”的“Windows Azure 计算” 节点中的部署环境。 可以从此位置查看单个角色实例的状态。 有关如何使用“服务器资源管理器”来显示部署的更多信息,请参见使用服务器资源管理器查看云服务状态。
下图显示仍处于“正在初始化”状态中的角色实例:

若要在部署之后访问您的应用程序,请在“Windows Azure 活动日志”中显示“已完成”状态时,选择部署旁边的箭头。 若要随应用程序启动浏览器,请选择显示在部署详细信息中的超链接。
如果使用 .NET 4 角色的 Visual Studio 2010 旗舰版并且启用了 IntelliTrace 作为部署的一部分,可通过在“服务器资源管理器”中的“Windows Azure 计算”字节请求检索和查看角色实例的 IntelliTrace 记录。
有关 IntelliTrace 和 IntelliTrace 设置的更多信息,请参见 使用 IntelliTrace 和 Visual Studio 调试已发布的云服务。
注意 |
|---|
IntelliTrace 调试是只为 和 Visual Studio 2010 旗舰版 64 位版本所用,并且仅限于 Windows Azure 应用程序开发,而不适用于 .NET Framework 4 或 .NET Framework 4.5。 可通过 Visual Studio 2010 旗舰版使用 IntelliTrace,如果安装此 所需的 QFE,则为32 位版本。 |
若要查看 IntelliTrace 日志,请打开要查看日志实例的快捷菜单,然后选择“查看 IntelliTrace 日志”,如下图所示:

将为该实例收集日志,并将这些日志上载到 blob 服务,然后进行下载并在 Visual Studio 中打开。
在 Visual Studio 中打开日志后,您可以使用 Visual Studio IntelliTrace 调试功能来调试您的托管服务。 有关如何使用 IntelliTrace 的更多信息,请参见 使用 IntelliTrace 调试。