12

我知道我可以使用此处概述的方法调试 Azure Web 角色:http: //msdn.microsoft.com/en-us/library/windowsazure/ee405479.aspx

调试 Windows Azure 网站的过程是什么?

我希望能够单步执行代码、设置断点等。

4

5 回答 5

14

根据最近的这篇文章,这现在是可能的。

以下是 Visual Studio 2012 的必要步骤,取自该帖子:

  1. 在 Windows Azure 管理门户中,转到网站的配置选项卡,然后向下滚动到站点诊断部分
  2. 将 Remote Debugging 设置为 On,并将 Remote Debugging Visual Studio Version 设置为 2012
  3. 在 Visual Studio 调试菜单中,单击附加到进程 在限定符框中,输入您的网站的 URL,不带 http:// 前缀
  4. 选择显示所有用户的进程
  5. 当系统提示您输入凭据时,输入有权发布网站的用户名和密码
    1. 要获取这些凭据,请转到管理门户中您网站的仪表板选项卡,然后单击下载发布配置文件。在文本编辑器中打开该文件,您将在第一次出现 userName= 和 userPWD= 之后找到用户名和密码。
  6. 当进程出现在可用进程表中时,选择 w3wp.exe,然后单击附加
  7. 打开浏览器访问您的站点 URL。在 Windows Azure 设置服务器以进行调试时,您可能需要等待 20 秒左右。这种延迟只会在您第一次在网站上以调试模式运行时发生。在接下来的 48 小时内再次开始调试时不会有延迟。
于 2013-11-05T17:23:46.220 回答
9

答案与如何在任何共享主机提供商中调试(asp.net)网站?

  • 正确处理异常/记录
  • 在调试时使用<compilation debug="true" />并且仅在调试时使用)
  • 为网站启用所有和任何类型的错误报告(下图)
  • [在此处插入您最喜欢的调试共享托管站点的方式]

Azure 网站诊断

于 2012-10-26T07:04:58.430 回答
5

更新: Azure 门户已更改,应用程序设置刀片即将停用。


我认为这值得为 Azure 管理门户和 VS 的最新版本提供更新的答案。

这就是我使用 Visual Studio 2017 Preview 7.1 实现 ASP.Net Core 2.0 API 远程调试的方式:

  1. 打开Azure 管理门户,浏览到您的 Web 应用,单击配置 > 常规设置,然后打开远程调试。以前它还要求提供 VS 版本,但这似乎不再是一个选项,我假设远程调试平台现在可以自动检测(但也可能是 2015 年之前的 VS 版本不再是这种情况支持,请参阅下面的评论)

在此处输入图像描述

  1. 编辑您的发布配置文件并将配置设置为调试,然后将 API 重新发布到 Azure:

在此处输入图像描述

  1. 在代码中设置断点
  2. 在 Visual Studio 中打开“服务器资源管理器”窗格,如果尚未使用 Microsoft 帐户连接到 Azure,请连接它。

  3. 打开Azure > App Service > [Resource Group]然后右键单击您的 Web 应用程序并选择Attach Debugger。经过一些配置后,它应该附加并且(如果已配置)VS 将打开一个浏览器到您的 Azure Web 应用程序。

在此处输入图像描述

在此处输入图像描述

  1. 点击你的网站/API,你的断点应该被命中。

我收集的最后笔记:

  • 我注意到有时菜单中缺少“附加调试器”选项。如果停止服务是一个选项,那么从菜单中选择停止(等待)然后选择开始就足以使该选项再次出现。可能还有其他修复。
  • 一些官方文档
  • 不要忘记将发布配置文件上的配置更改回发布,然后重新发布发布版本。不要在生产中使用调试。谢谢@Manfred。
  • 避免在断点处长时间停止(谁能解释这可能会产生什么影响?)
  • 看来48小时后,远程调试功能自动关闭(尚无法确认)
于 2017-08-16T06:13:44.963 回答
1

Scott Hanselman 最近在这里发表了关于此的博客。

这不是设置断点那么好,但是将记录的信息流式传输到控制台可以使调试的痛苦稍微减轻一些。

于 2013-04-07T16:51:18.580 回答
0

Paul,从上面的一些建议中,这可能对您来说是一个进步:“Glimpse 就像 FireBug 客户端调试器,只是它在客户端用 JavaScript 实现,并在服务器端与 ASP.NET 挂钩。”

因此,虽然它不允许您设置断点,但至少您可以实时观察跟踪的发生,而不必筛选日志文件。

http://www.hanselman.com/blog/NuGetPackageOfTheWeek5DebuggingASPNETMVCApplicationsWithGlimpse.aspx

于 2013-09-12T06:02:14.110 回答