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

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

先决条件

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

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

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

启用远程调试

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

  1. 登录到自己的 Azure 门户

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

    Azure 搜索的屏幕截图。

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

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

    Azure 远程调试设置的屏幕截图。

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

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

配置调试设置

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

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

    注意

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

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

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

    Visual Studio 调试设置的屏幕截图。

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

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

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

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

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

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

    “附加到进程”功能的屏幕截图。

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

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

    符号文件窗口的屏幕截图。