当前位置: 首页 > 科技观察

如何使用VisualStudio远程调试部署在Azure上的WebApp

时间:2023-03-16 15:39:44 科技观察

当我们在Azure上部署WebApp时,如果能够实现远程调试,将大大提高我们修复bug的效率。VisualStudio一直以其强大的功能和易用性着称。当然也可以实现基于Azure的应用的创建、发布和调试。接下来,让我们看看如何使用VisualStudio远程调试部署在Azure上的WebApp,以及一些常见的注意事项。注意工具的版本在开始正文之前,让我们检查一下所使用的AzureSDK和VisualStudio的版本。根据MSDN,AzureSDK2.2中增加了Azure的远程调试功能,因此请确保您的机器上安装了2.2或更新版本的AzureSDK。关于VisualStudio的版本,MSDN上的描述也很有意思。大意是使用VisualStudio2012已经可以远程调试Azure上的Website,但是VisualStudio2013对此做了很多改进。个人理解最好用VS2013,或者更新的版本。笔者在写这篇文章时的实验环境是VS2015update3和AzureSDK2.9。原理介绍如果我们要使用机器A上运行的VisualStudio来调试另一个机器B上运行的程序myapp(B机器上没有安装visualstudio),我们不仅需要将带有pdb文件的myapp程序部署到机器B上机器B,同样运行了一个调试助手程序msvsmon.exe。运行msvsmon.exe后,VisualStudio可以attachlivemyapp并使用其pdb文件进行调试,这就是VisualStudio的远程调试功能。msvsmon.exe程序必须匹配特定版本的VisualStudio才能工作,因此集成在VisualStudio安装包中,使用时在VisualStudio安装目录中搜索即可找到。AzureWebApp的远程调试与上述过程相同,只是我们需要通过云端配置指定msvsmon.exe对应的VisualStudio版本,并告诉云端打开一些调试需要的端口。下面我们就来一步步走上VS远程调试AzureApp的旅程吧。SetDeploymentcredentials当我们部署网站的时候,我们需要创建这个账号。此帐户可用于部署和远程调试。用于下载和发布的发布配置文件发布配置文件是用于发布的配置文件。当我们要发布一个网站或者一个web应用的时候,我们需要很多的基础信息,比如服务器在哪里?用户名是什么?密码是什么?etc...这些信息都保存在publishingprofile文件中,感兴趣的朋友可以打开这个文件查看里面的详细内容。不管调试与否,我们都要将应用发布到Azure,所以首先下载发布配置文件:允许远程调试WebApp在Applicationsettings中将远程调试设置为允许状态,并指定远程调试的VisualStudio版本。相关内容在原理部分已经提到,这里需要注意的是:这两个设置是有时间限制的,48小时后默认关闭!主要是出于性能和安全的考虑,所以建议大家在调试完毕后立即关闭远程调试。WebAppVisualStudio的发布调试版本的调试功能依赖于编译过程中生成的pdb文件。下面的设置是将WebApp编译成debug版本,发布时生成对应的pdb文件。现在VisualStudio可以智能的找到pdb文件,所以这里我们不用关心pdb文件是发布到云端还是保存在本地(简单就好)!首先导入刚刚下载的发布配置文件:在Settings中选择ConfigurationFor“Debug”:然后点击“Publish”按钮进行发布。附加远程进程。在Attach对话框中输入不带“http://”部分的网站URL,然后在弹出的对话框中输入我们一开始创建的用户名和密码。在列出的进程列表中选择“w3wp.exe”:单击“附加”按钮。心急的同学注意了,这里可能需要稍等一会……开始远程调试WebApp当看到设置的断点变为可用时,可以尝试触发断点。好吧,它看起来不错而且有效!注意在实际使用中可能不是那么顺畅。主要是附着的时候,可能要多尝试几次才能成功。调试过程中速度也是个问题,感觉还是有点慢。另外,调试Web程序经常会遇到尴尬的一幕:恰好另一个用户正在使用这个功能(很可能是测试人员),所以这时候不要太惊讶!