本文介绍如何将 Visual Studio 调试器附加到在 Azure 应用服务上运行的 ASP.NET Core 应用。 以下步骤使你能够像在本地运行一样调试应用。
先决条件
安装了ASP.NET 和 Web 开发以及Azure 开发工作负载的 Visual Studio 2022 或更高版本。
必须先从 Visual Studio 将 ASP.NET Core 应用部署到 Azure 应用服务(Windows),并且应用必须正在运行。
在发布之前,Visual Studio 中的发布配置文件必须设置为“调试”而不是“发布”。
启用远程调试
在使用 Visual Studio 调试此问题之前,必须在应用服务上启用远程调试功能。 此设置允许 Visual Studio 调试器连接到主应用服务 Web 托管进程。
登录到自己的 Azure 门户。
在 Azure 门户中找到已部署的应用程序。 可以通过浏览到 “应用服务 ”页并选择应用服务实例来查找应用。 还可以直接在顶部的搜索栏中按名称搜索应用服务实例。 (在此示例中,应用服务实例名为 WebApplication2202。)
在应用服务实例的概述页上,在左窗格中的 “设置” 下,选择“ 配置”,然后选择“ 常规设置 ”选项卡。
在页面底部,选择 “远程调试 ”选项,然后选择 2022 作为 远程 Visual Studio 版本。
登录到自己的 Azure 门户。
在 Azure 门户中找到已部署的应用程序。 可以通过浏览到 “应用服务 ”页并选择应用服务实例来查找应用。 还可以直接在顶部的搜索栏中按名称搜索应用服务实例。 (在此示例中,应用服务实例名为 GitHubBrowser123。)
在应用服务实例的设置页上,选择左侧导航上的 “配置 ”,然后选择 “常规设置” 选项卡。
在页面底部,请确保将 远程调试 功能设置为 “打开 ”,并选择 “Visual Studio 2022 ”作为 远程 Visual Studio 版本。
- 选择页面顶部的 “保存” 以保留所做的更改。
应用服务实例现在支持通过 Visual Studio 进行远程调试。
配置调试设置
生成应用时不会出现错误。 如果应用在本地运行,请停止应用。
注释
确保本地代码的状态与部署到 Azure 的内容匹配。 这可确保本地符号文件和源代码与已部署的应用一致。
从 Visual Studio 顶部菜单中选择 “调试 > 选项 ”。 确保“启用仅我的代码”未选中(如下图所示)。
通过更改此设置,Visual Studio 可以使用本地 bin 文件夹中所需的符号文件调试部署到 Azure 的优化代码。 调试器使用符号文件作为编译、执行代码和 Visual Studio 中的源代码之间的桥梁。 远程调试需要匹配符号文件。
从 Visual Studio 顶部菜单中选择 “调试 > 选项 ”。 确保“启用仅我的代码”未选中(如下图所示),然后选择“确定”。
通过更改此设置,Visual Studio 可以使用本地 bin 文件夹中所需的符号文件调试部署到 Azure 的优化代码。 调试器使用符号文件作为编译、执行代码和 Visual Studio 中的源代码之间的桥梁。 远程调试需要匹配符号文件。
将调试器附加到应用服务
在 Visual Studio 顶部的主菜单中,选择“ 调试 > 附加到进程”以打开相应的对话框。 使用此窗口可以连接并附加到不同的目标。 在这种情况下,你将连接到在上一步中创建的应用服务实例。
选择“ 连接类型” 下拉列表,然后选择 “Microsoft Azure 应用服务 ”选项。
选择“连接目标”字段旁边的“查找”。打开一个对话框,用于浏览 Azure 订阅和应用服务。
如果尚未使用 Azure 订阅登录,请选择 “查找...” ,然后即可 登录。
找到并选择在上一步中创建的应用服务实例,然后选择 “确定”。
该过程
w3wp.exe应显示在要连接到的可用进程列表中。w3wp.exe是托管已部署应用程序的 Azure 应用服务的主要过程。 选择该w3wp.exe过程,然后选择右下角的附加。在 C# 应用程序文件中,单击
Index.cshtml.cs左边距设置断点。 或者,右键单击并选择“断点>”。在 Web 应用中,导航到具有断点的端点。 如果您连接到进程但无法命中断点,请确保在 Visual Studio 中将发布配置文件设置为调试配置,而不是发布配置。
可选:验证 Visual Studio 是否已加载调试会话的符号文件。 导航到 “调试 > Windows > 模块 ”以打开“模块”窗口。 此窗口指示在您之前更改了 “仅我的代码”配置 后,符号文件已成功加载。
注释
若要后续调试应用服务,请选择“调试>重新附加到 w3wp.exe”或使用 Shift+Alt+P 热键。