VS2022移除Cloud Explorer后如何远程调试zip包部署的Azure Function
VS2022下Run From Package模式Azure Function远程调试方案
VS2022移除Cloud Explorer后,针对私有存储Zip包部署、以包运行模式启动的Function App,不需要走发布流程的Hosting选项,按以下步骤操作即可实现原Cloud Explorer支持的单步调试能力,解决Connected Services附加后不命中断点的问题。
相关操作界面参考:

前置配置(Function App端)
- 进入对应Function App的配置页面,打开远程调试开关,远程调试Visual Studio版本选择和你本地安装的VS2022大版本匹配的选项
- 确认应用设置中
SCM_DO_BUILD_DURING_DEPLOYMENT值为false,避免部署时自动重新编译导致包内容和本地源码不匹配 - 下载Function App的发布配置文件,留存其中的远程调试端点地址、部署用户名、部署密码,后续手动附加调试器需要用到
解决断点不命中的核心前提:符号匹配
Connected Services一键附加后无法命中断点,90%以上的原因是本地代码和云端运行的Zip包编译符号不一致
- 将本地代码切换到上次打包上传对应的版本,确保没有未提交的代码改动
- 使用和上次打包完全一致的编译配置(推荐Release配置,和云端部署配置对齐)重新编译项目
- 将本次编译输出的所有文件重新打为Zip包,上传覆盖私有存储账户中对应的部署包,重启Function App实例确保新加载的包和本地编译输出完全一致
手动附加调试器(替代原Cloud Explorer调试入口)
- 打开VS2022,顶部菜单栏选择「调试」→「附加到进程」
- 连接类型选择
Microsoft Azure App Service,连接目标填入发布配置文件中获取的远程调试端点,点击连接 - 身份验证环节选择使用部署凭据验证,填入发布配置文件中的部署用户名、密码,不要使用个人Azure账号登录——私有存储Zip部署场景下,AAD身份校验默认没有远程调试的进程访问权限
- 进程列表勾选「显示所有用户的进程」,Windows实例选择
w3wp.exe进程,Linux实例选择对应语言的Function工作进程(.NET栈选dotnet.exe) - 附加前手动指定调试器类型,不要使用自动识别:.NET项目选择「托管(.NET Core、.NET 5+)」,其他语言栈选择对应匹配的调试器类型,选中进程后点击附加即可正常下断点单步调试
常见问题排查
- 断点显示空心、提示未加载符号:右键断点选择「位置」,勾选「允许源代码与原始版本不同」;或手动将本地编译生成的pdb文件所在目录加入VS符号加载路径,Run From Package模式下默认不会从云端站点拉取符号文件
- 附加时提示连接超时:检查Function App的网络访问限制,确认你本地的公网IP在允许访问列表中,没有拦截远程调试的默认端口
- 附加后调试器无响应:确认Function App的平台架构(x86/x64)和你本地项目的编译目标架构一致,架构不匹配会导致调试器加载失败
内容的提问来源于stack exchange,提问作者Sergio Solorzano
相关产品推荐
相关产品推荐

