开启Fiddler时dotnet-isolated模式Azure Function gRPC调用报错如何解决
开Fiddler时dotnet-isolated模式Azure Function本地运行报错解决方案
报错根源:dotnet-isolated 进程模型的 Azure Function 本地运行时,主机与工作进程默认通过 gRPC 通信,要求使用 HTTP/2 协议。Fiddler 默认未开启 HTTP/2 支持,作为系统代理拦截请求时会降级为 HTTP/1.1,不符合 gRPC 的版本策略要求,因此触发报错。
可选解决方案
- 方案1:开启Fiddler的HTTP/2支持(推荐,无额外配置成本)
- 打开Fiddler,依次点击顶部菜单
Tools->Options->HTTPS标签页 - 勾选
Enable HTTP/2 support选项,点击确认 - 重启Fiddler和Azure Function项目即可正常运行
- 打开Fiddler,依次点击顶部菜单
- 方案2:修改Azure Function本地配置,强制gRPC使用HTTP/1.1
- 打开项目根目录下的
local.settings.json文件 - 在
Values节点下添加配置项:"FUNCTIONS_WORKER_RUNTIME_GRPC_DISABLE_HTTP2": "true" - 保存文件后重新运行项目即可,该配置仅对本地开发环境生效,不会影响线上发布
- 打开项目根目录下的
- 方案3:配置Fiddler忽略Azure Function本地gRPC通信流量
- 打开项目根目录下的
local.settings.json文件,在Values节点下添加配置项指定固定gRPC端口:"FUNCTIONS_GRPC_PORT": "5005" - 打开Fiddler,依次点击顶部菜单
Tools->Options->Connections标签页 - 在
Bypass Fiddler for URLs that start with:输入框中添加localhost:5005;127.0.0.1:5005,点击确认 - 重启Fiddler和Azure Function项目即可,该方案下Azure Function的内部通信流量不会被Fiddler拦截,不影响其他请求的抓包
- 打开项目根目录下的
内容的提问来源于stack exchange,提问作者Rob Bowman
相关产品推荐
相关产品推荐

