远程调试 Azure Web App

当我们将 Web App 部署在 Azure 上时,如果能够实现远程调试,将会极大的提高我们修复 bug 的效率。Visual Studio 一贯以功能强大、易用著称,当然可以实现基于 Azure 应用的创建、发布和调试。接下来就让我们一起看看如何使用 Visual Studio 远程调试部署在 Azure 上的 Web App,以及一些常见的注意事项。

 

注意工具的版本

在开始正文前让我们先检查一下使用的 Azure SDK 版本和 Visual Studio 版本。根据MSDN的介绍,Azure 的远程调试功能是在 Azure SDK 2.2 中加入的,所以请确保您的机器上安装了2.2或者是更新的 Azure SDK。

关于 Visual Studio 的版本问题,MSDN上的描述也很有趣。大意是使用 Visual Studio 2012 已经可以远程调试 Azure 上的 Website 了,但是 Visual Studio 2013 又对此做了很多的提升。个人理解最好使用 VS2013,或者更新的版本。

笔者在写本文时的实验环境是 VS2015 update3 和 Azure SDK 2.9。

 

原理简介

如果我们要使用运行在机器A上的 Visual Studio 调试另外一台机器B上运行的一个程序 myapp(机器B上没有安装 visual studio),我们不仅要把附带 pdb 文件的 myapp 程序部署到机器B上,还要在机器B上运行一个调试辅助程序 msvsmon.exe。运行 msvsmon.exe 后,Visual Studio 就能够 attach 住 myapp 并使用其 pdb 文件进行调试,这就是 Visual Studio 的远程调试功能。而 msvsmon.exe 程序必须与特定版本的 Visual Studio 相匹配才能工作,所以它被集成在 Visual Studio 的安装包中,用时去 Visual Studio 的安装目录中搜索就能找到。

远程调试 Azure Web App 和上面的过程是一样的,只不过我们需要通过云端的配置来指定 msvsmon.exe 对应的 Visual Studio 版本,并告诉云端打开一些调试所需的端口。

下面就让我们一步步的踏上VS远程调试 Azure App 之旅。

 

设置 Deployment credentials

当我们部署网站时就需要创建这个账号,这个账号既可以用来部署又可以用来远程调试。

 

 

下载发布用的 publishing profile

Publishing profile 是用于进行发布操作的配置文件。当我们要发布一个网站或者是一个 Web 应用时,需要很多的基本信息,比如服务器在哪里?用户名是什么?密码是什么?等等…这些信息统统保存在 publishing profile 文件中,有兴趣的朋友可以打开这个文件看看里面的详细信息。

无论调试与否,我们都要把应用发布到 Azure 上去,所以先下载 publishing profile:

 

 

允许远程调试 Web App

设置 Application settings 中的远程调试为允许状态,并指定用于远程调试的 Visual Studio 版本。相关内容已经在原理部分讲过,这里说些需要注意的内容:

这两项设置是有期限的,在48小时之后默认会被关掉!

原因主要是性能和安全,所以建议大家在调试完成后立即关闭远程调试功能。

 

 

发布调试版本的 Web App

Visual Studio 的调试功能依赖于编译过程中产生的 pdb 文件。下面的设置就是让 Web App 在发布时编译为 debug 版本并产生对应的 pdb 文件。现在的 Visual Studio 已经可以智能的去找 pdb 文件了,所以这里我们不用关心 pdb 文件是被发布到了云端还是保存在本地(简单就好)!

先导入刚才下载的 publishing profile 文件:

 

在 Settings 中选择 Configuration 为 ”Debug”:

 

然后点击 “Publish”按钮进行发布。

 

Attach 远程进程

在 Attach 对话框中输入网站 URL 中去掉”http://”的部分,然后在弹出的对话框中输入我们在最开始处创建的用户名和密码。

 

在列出的进程列表中选择”w3wp.exe”:

 

点击”Attach”按钮就可以了。

心急的同学可要注意了,这里可能需要等待上那么一小会儿…

 

开始远程调试 Web App

当你看到设置的断点变成可用状态时,就可以尝试去触发一个断点了。

 

好了,看上去还不赖,能够工作了!

注意,实际使用过程中可能并不会这么的顺利。主要是在 attach 的时候,可能需要多试几次才能成功。调试的过程中速度也是个问题,感觉还是有点慢。

另外,调试 Web 程序经常会碰到让人很尴尬的一幕:正好有另外的一个用户在使用这个功能(可能是测试人员),此时不要太吃惊喔!

 

相关阅读:

最全的Windows Azure学习教程汇总

Azure Blob Storage 基本用法 -- Azure Storage 之 Blob

Azure Queue Storage 基本用法 -- Azure Storage 之 Queue

Azure File Storage 基本用法 -- Azure Storage 之 File

Azure Table storage 基本用法 -- Azure Storage 之 Table

 

时间: 2024-10-17 23:11:28

远程调试 Azure Web App的相关文章

在IBM i上远程调试Liberty Web应用

2012 年 6月,IBM 正式发布了 WebSphere Application Server V8.5 版本(简称 WAS V8.5).WebSphere Liberty Profile Server(简称 Liberty)在是 WAS V8.5 中最主要的新特性,它是一个基于 OSGi 内核,高模块化,高动态性的轻量级 WebSphere 应用服务器,其安装极为简单.启动非常快.占用很少的磁盘和内存空间,支持 Web.mobile 和 OSGi 应用的开发,一经推出就受到广大开发人员的青睐

Azure 部署 Asp.NET Core Web App

在云计算大行其道的时代,当你在部署一个网站时,第一选择肯定是各式各样的云端服务.那么究竟使用什么样的云端服务才能够以最快捷的方式部署一个 ASP.NET Core 的网站呢?Azure 的 Web App 服务是个很好的选择. 下面我们会通过 Visual Studio 创建一个 Asp.net Core demo 应用,然后把这个 demo 应用部署到 Azure Web App. 通过阅读本文,你将会了解到如何创建 Asp.NET Core 应用程序和如何在 Azure 上创建 Web Ap

Azure 上部署 ASP.NET Core Web App

前言 在云计算大行其道的时代,当你要部署一个网站时第一选择肯定是各式各样的云端服务.那么究竟使用什么样的云端服务才能够以最快捷的方式部署一个 ASP.NET Core的网站呢?Azure 的 Web App 服务是个很好的选择. 下面我们会通过 Visual Studio 创建一个 ASP.NET Core demo 应用,然后把这个 demo 应用部署到 Azure Web App.通过阅读本文,您将能了解到如何创建 Asp.NET Core 应用程序和如何在Azure上创建 Web App

websocket-Azure web app中使用Websocket的数量限制用singalr

问题描述 Azure web app中使用Websocket的数量限制用singalr 我想知道如何确认我在Azure web app中,我到底可以使用多少个websocket的链接.按文档介绍,free模式下我只有5个connections,但是我使用signalr的时候,我发现我同时可以有10几个用户在线,并且10几个人处于连接状态,这是为什么呢?官网上5个并行的connection到底该如何理解呢? 解决方案 Hi, 从你的描述来看你使用的是国际版的Azure, 国际版Azure web

移动web app开发-----调试篇

      俗话说'工欲善其事必先利其器',那么在写这个移动端web app开发的系列文章之前,为了让大家少走一些弯路,先来给大家介绍一下我们常用在开发过程中所使用的调试工具.      相信大家进行过web开发开发的人对于一些常用的调试工具都比较熟悉了.在firefox上,firebug了算是最流行的,还有它的很多插件,像yslow等:在chrome我们可以从'菜单----->工具------>开发人员工具'中打开,我们一般情况下用的都是一些最基本的功能,像检查javascript的内存消耗

在Visual Studio上开发Node.js程序(2)——远程调试及发布到Azure

原文:在Visual Studio上开发Node.js程序(2)--远程调试及发布到Azure [题外话] 上次介绍了VS上开发Node.js的插件Node.js Tools for Visual Studio(NTVS),其提供了非常方便的开发和调试功能,当然很多情况下由于平台限制等原因需要在其他机器上运行程序,进而需要远程调试功能,不过还好,NTVS提供的远程调试也非常方便.   [系列索引] 在Visual Studio上开发Node.js程序--NTVS介绍及使用 在Visual Stu

Web.config中设置启用webservice远程调试访问

 在.NET 中已经默认将webservice的远程调试功能关闭,有的时候我们需要远程调试程序的时候,就需要打开此功能我们只需在webservice的项目的中添web.config的<system.web>配置节下面加一下一段配置就OK了,代码如下: <system.web> <compilation debug="true" /> <!--begin启用webservice远程访问--> <webServices> <

远程调试阿里云上的NodeJS Docker应用

云端调试 代码部署到了云上以后,如果想进行远程调试就不想本地调试那么方便了.一旦出现问题,大家会通过读日志文件的方式猜测修改.阿里云容器服务提供了集中日志输出的能力,省却了开发人员自己登录到每台机器上去读日志的痛苦.如果代码在本地运行得很好,在云上却不对,通过日志方式能够发现大部分错误. 但是,但是,总有那么一些时候,读日志不能解决所有问题,开发人员还是需要登录到云上远程调试代码. 我们今天就进行一个这样的尝试,远程调试NodeJS代码.基本思路是通过支持远程调试的IDE连接到云端进行调试.ID

Web App动效设计原则 Web App的设计方法

文章描述:Mobile Web App的设计方法 [编者按]本文作者:邓腾(@千年牛皮糖),百度无线交互设计师 .在本文中,作者将给大家谈谈Mobile Web App的设计方法,内容包括:Web App定义.Web App的特点.发展现状及设计等等.希望对大家有所帮助. Native App与Web App的争论从未停息过,尽管很多人在批判Web App的各种不是,但也阻止不了各种各样的Web App如雨后春笋般出现,尤其是伴随智能手机的普及而受到重视的Mobile Web App.这是一种在