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

VS Code调试Azure Functions时立即触发ECONNREFUSED错误的求助

解决VS Code调试Azure Functions时出现「connect ECONNREFUSED 127.0.0.1:9091」的问题

你的核心问题其实是调试前的预启动任务(func: host start)根本没触发执行——VS Code连终端都没打开,说明任务启动环节就卡壳了,自然调试器连不上9091端口(因为函数宿主压根没启动)。咱们一步步来排查修复:

1. 先确认路径配置的准确性

你的settings.json里指定了azureFunctions.projectSubpath为azure-functions\\my_project,先做两个关键检查:

  • 确认这个子路径真实存在,且里面包含requirements.txt和函数代码文件
  • 验证虚拟环境路径:settings.json里的python.pythonPath是绝对路径,要确保.venv\\Scripts\\python.exe这个文件存在,且虚拟环境能正常激活(可以手动打开终端,进入该路径运行python --version测试)

2. 手动触发预启动任务,定位执行问题

VS Code按Ctrl+Shift+B打开任务面板,选择func: host start任务,观察终端反应:

  • 如果终端没弹出/任务无响应:检查Azure Functions Core Tools是否正确安装。打开系统终端(不是VS Code集成终端),输入func --version,如果提示找不到命令,说明Core Tools没加入系统PATH或安装失败,需要重新安装最新版的Core Tools。
  • 如果任务执行但报错:比如依赖安装失败,先手动进入azure-functions\\my_project路径,激活虚拟环境后运行pip install -r requirements.txt,解决依赖问题后再重试。

3. 调整任务的后台运行配置

你的tasks.json里把func: host start设为了isBackground: true,搭配的problemMatcher: $func-python-watch需要正确识别任务启动完成的信号。如果VS Code没检测到任务启动完成,会直接跳过任务去启动调试,导致连接失败。可以先临时修改测试:
把isBackground改成false,再触发调试。这样任务会阻塞直到宿主停止,能帮你确认任务是否能正常启动宿主。如果能启动,再改回true,同时检查local.settings.json里是否有FUNCTIONS_WORKER_RUNTIME_DEBUG_PORT=9091的配置(确保调试端口一致)。

4. 检查9091端口是否被占用

有可能之前的函数宿主进程没正常退出,占用了端口。打开Windows命令提示符,运行:

netstat -ano | findstr :9091

如果有结果,记下PID,打开任务管理器结束对应进程后重试调试。如果端口确实被占用,也可以修改launch.json里的port为其他值(比如9092),同时在local.settings.json里添加/修改FUNCTIONS_WORKER_RUNTIME_DEBUG_PORT=9092。

5. 排查VS Code扩展问题

有时候Azure Functions扩展的缓存或版本问题会导致任务触发异常:

  • 打开VS Code扩展面板,找到Azure Functions扩展,点击「重新加载窗口」
  • 如果还是不行,尝试更新扩展到最新版,甚至卸载后重装

6. 手动启动宿主再调试

如果上面的步骤都没解决,可以绕开预启动任务,手动启动宿主:

  1. 打开VS Code集成终端,进入azure-functions\\my_project路径,激活虚拟环境
  2. 运行func host start --port 9091(确保端口和launch.json一致)
  3. 等宿主启动完成后,再点击F5启动调试,看是否能正常连接

内容的提问来源于stack exchange,提问作者Be Chiller Too

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 04:27:49