当咱们将 Web App 部署在 Azure 上时,若是可以实现远程调试,将会极大的提升咱们修复 bug 的效率。Visual Studio 一向以功能强大、易用著称,固然能够实现基于 Azure 应用的建立、发布和调试。接下来就让咱们一块儿看看如何使用 Visual Studio 远程调试部署在 Azure 上的 Web App,以及一些常见的注意事项。html
文章来源:葡萄城产品技术社区安全
在开始正文前让咱们先检查一下使用的 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,或者更新的版本。app
笔者在写本文时的实验环境是 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 之旅。网站
当咱们部署网站时就须要建立这个帐号,这个帐号既能够用来部署又能够用来远程调试。spa
Publishing profile 是用于进行发布操做的配置文件。当咱们要发布一个网站或者是一个 Web 应用时,须要不少的基本信息,好比服务器在哪里?用户名是什么?密码是什么?等等…这些信息通通保存在 publishing profile 文件中,有兴趣的朋友能够打开这个文件看看里面的详细信息。debug
不管调试与否,咱们都要把应用发布到 Azure 上去,因此先下载 publishing profile:
设置 Application settings 中的远程调试为容许状态,并指定用于远程调试的 Visual Studio 版本。相关内容已经在原理部分讲过,这里说些须要注意的内容:
这两项设置是有期限的,在48小时以后默认会被关掉!
缘由主要是性能和安全,因此建议你们在调试完成后当即关闭远程调试功能。
Visual Studio 的调试功能依赖于编译过程当中产生的 pdb 文件。下面的设置就是让 Web App 在发布时编译为 debug 版本并产生对应的 pdb 文件。如今的 Visual Studio 已经能够智能的去找 pdb 文件了,因此这里咱们不用关心 pdb 文件是被发布到了云端仍是保存在本地(简单就好)!
先导入刚才下载的 publishing profile 文件:
在 Settings 中选择 Configuration 为 ”Debug”:
而后点击 “Publish”按钮进行发布。
在 Attach 对话框中输入网站 URL 中去掉”http://”的部分,而后在弹出的对话框中输入咱们在最开始处建立的用户名和密码。
在列出的进程列表中选择”w3wp.exe”:
点击”Attach”按钮就能够了。
心急的同窗可要注意了,这里可能须要等待上那么一小会儿…
当你看到设置的断点变成可用状态时,就能够尝试去触发一个断点了。
好了,看上去还不赖,可以工做了!
注意,实际使用过程当中可能并不会这么的顺利。主要是在 attach 的时候,可能须要多试几回才能成功。调试的过程当中速度也是个问题,感受仍是有点慢。
另外,调试 Web 程序常常会碰到让人很尴尬的一幕:正好有另外的一个用户在使用这个功能(多是测试人员),此时不要太吃惊喔!