在 Azure 应用服务上远程调试 ASP.NET Core

本文介绍如何将 Visual Studio 调试器附加到在 Azure 应用服务上运行的 ASP.NET Core 应用。 可以通过执行以下步骤,像在本地运行一样调试应用。

先决条件

  • 安装了“ASP.NET 和 Web 开发”以及“Azure 开发”工作负载的 Visual Studio 2022。

  • 必须先将 ASP.NET Core 应用从 Visual Studio 部署到 Azure 应用服务,并且该应用必须正在运行。

    有关包括应用服务部署的动手培训,请参阅在 Azure 上远程调试 ASP.NET Core

启用远程调试

在使用 Visual Studio 调试此问题之前,必须在应用服务上启用远程调试功能。 此设置将允许 Visual Studio 调试程序连接到主应用服务 Web 托管进程。

  1. 登录到自己的 Azure 门户

    在 Azure 门户中找到已部署的应用程序。 可以通过浏览到“应用服务”页,然后选择应用服务实例来查找应用。 还可以在顶部的搜索栏中直接按名称搜索应用服务实例。 (在此示例中,应用服务实例名为 GitHubBrowser123。)

    A screenshot of Azure search.

  2. 在“应用服务设置”页上,选择左侧导航上的“配置”,然后切换到“常规设置”选项卡。

  3. 在页面底部,确保将“远程调试”功能设置为“打开”,并选择“Visual Studio 2022”作为“远程 Visual Studio 版本”。

    A screenshot of the Azure remote debugging settings.

  4. 选择页面顶部的“保存”以保存更改。

应用服务实例现在支持通过 Visual Studio 进行远程调试。

配置调试设置

确保在 Azure 中调试应用之前已在 Visual Studio 中完成了以下步骤,以确保成功。

  1. 首先,请确保至少一次成功生成项目。 成功生成项目可确保源代码和任何必要的编译文件都准备就绪。 如果应用程序在本地运行,请确保停止应用。

    注意

    确保本地代码的状态与部署到 Azure 的内容相匹配。 这可确保本地符号文件和源代码与部署的应用一致。

  2. 从 Visual Studio 顶部菜单中导航到“调试”->“选项”。 确保“启用‘仅我的代码’”处于未选中状态(如下所示),然后选择“确定”。

    通过更改此设置,Visual Studio 可以调试使用本地 bin 文件夹中的必要符号文件部署到 Azure 的优化代码。 调试程序使用符号文件结合 Visual Studio 中已编译的执行代码与源代码,因此本地源代码务必与部署应用匹配。

    A screenshot of the Visual Studio debugging settings.

将调试程序附加到应用服务

  1. 从 Visual Studio 顶部的主菜单中,选择“调试”->“附加到进程”以打开相应的对话框。 使用此窗口可以连接并附加到不同的目标。 在这种情况下,你将连接到在上一步中创建的应用服务实例。

  2. 选择“连接类型”下拉列表,然后选择“Microsoft Azure 应用服务”选项。

  3. 选择“连接目标”字段旁边的“查找..”,打开对话框,通过该对话框浏览 Azure 订阅和应用服务。

  4. 找到并选择在上一步中创建的应用服务实例,然后选择“确定”。

  5. w3wp.exe 进程应会出现在要连接的可用进程列表中,这是托管已部署应用程序的 Azure 应用服务的主进程。 选择该进程,然后选择右下角的“附加”,连接 Visual Studio 调试程序。

    A screenshot of the attach to process features.

  6. Index.cshtml.cs 或其他 C# 应用程序文件中,单击左边距设置断点。 (或者右键单击并选择“断点”>“插入断点”。)

  7. 你还可以选择验证 Visual Studio 是否已为调试会话加载了符号文件。 导航到“调试”>“Windows”>“模块”以打开模块窗口。 此窗口应指示,在之前所做的“仅我的代码”配置更改后,成功加载了符号文件。

    A screenshot of the symbol files window.