You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET5 Azure Web App远程调试连接后随机断开无法命中断点问题求助

提问:Azure上.NET 5服务远程调试连接后随机断开无法命中断点

我有一个运行在Azure上的.NET 5服务,在解决了相关问题后已经可以成功连接远程调试,但现在遇到新问题:调试器连接成功后会随机断开。

我尝试了以下操作:

  • 多次重启Azure上的服务,也测试过手动停止后再重新启动服务
  • 为了跟踪ConfigureServices方法执行逻辑,我在服务启动后立即按快捷键重新附加到进程
  • 调试器可以成功连接
  • 但没有任何反应,无法命中任何断点
  • 我不认为是操作太慢的问题,使用Thread.Sleep或者Task.Delay也无法捕获到断点
  • 连接成功后很快我的输出窗口就出现对应输出内容
  • 几秒后弹出对应报错提示
  • 我在Azure诊断工具的应用程序事件日志中看到了对应日志列表(我已多次尝试调试)
  • 我认为其中两条条目相关:第一条显示RDB已连接,第二条显示应用程序已关闭

另外本地调试完全正常,请问我可以在哪里获取更多日志信息?这个问题的原因是什么?

我还在VS2019的云资源管理器中找到了额外日志,eventlog.xml中有大量事件提示调试器已连接。

希望大家能帮忙排查问题,否则我只能在解决方案中新建项目、重新创建Azure服务来排查是否是现有组件配置错误。谢谢大家!

更新: 我已经重新创建了Azure服务,在VS2019中新建了项目,但问题仍然存在。我也对比了带View的新项目测试,通过抛异常的方式验证到整个Startup类的代码都可以正常执行,仅远程调试功能异常,报错原因为远程调试器已连接。


问题排查方案与可能原因

核心触发原因

  • 远程调试组件版本不匹配:VS2019默认携带的远程调试工具版本,与Azure App Service上部署的.NET 5运行时对应的远程调试组件存在版本兼容问题,会导致连接后进程异常退出
  • 进程附加错误:.NET 5的gRPC服务在Azure App Service上运行时,默认宿主进程为dotnet.exe而非传统的w3wp.exe,如果附加时选到了错误的进程就会出现连接后无响应、自动断开的情况
  • 应用服务未开启Always On:Azure App Service默认会将空闲超过20分钟的进程回收,调试过程中如果触发了回收规则就会自动断开
  • 平台位数不匹配:如果本地编译的程序是32位,而Azure App Service配置为64位运行,反之亦然,会导致调试器无法正确加载符号,触发进程异常退出
  • 符号加载配置错误:发布时未携带对应版本的PDB符号文件,或者VS的符号加载路径配置错误,会导致调试器连接后无法命中断点,最终触发超时断开

更多日志获取路径

  1. Azure门户对应应用服务的【诊断和解决问题】面板,搜索「远程调试失败」即可获取平台侧的调试连接全链路日志
  2. 进入应用服务的【高级工具(Kudu)】,在DebugConsole路径下进入LogFiles/RemoteDebugging文件夹,可获取远程调试组件的完整运行日志
  3. VS2019的【工具-选项-调试-输出窗口】,将「调试日志详细程度」调整为「详细」,可获取本地调试器的连接交互日志

验证修复步骤

  1. 先在Azure门户应用服务的【配置-常规设置】中,确认以下配置:
    • 开启Always On选项
    • 平台位数与本地编译的程序位数保持一致
    • 远程调试版本选择对应VS2019的版本,不要选自动匹配
  2. 发布程序时选择Debug模式,或者发布Release模式时勾选「生成调试符号」选项
  3. 附加进程时优先选择dotnet.exe进程,若存在多个dotnet.exe进程可先停止应用服务再启动,确保只存在一个运行中的服务进程
  4. 若仍有问题,可安装对应版本的Azure远程调试工具独立安装包,手动同步本地与Azure侧的调试组件版本

内容的提问来源于stack exchange,提问作者GeKu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 03:57:02