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

.NET 6迁移后本地运行Azure Function v4遇gRPC URI解析错误

Azure Functions v4迁移后本地运行gRPC URI解析错误解决方法

问题场景

将.NET 2.1/2.2/3.1项目迁移至.NET 6,Azure Function升级到v4版本后编译正常,但本地运行抛出错误:

Message=The gRPC channel URI 'http://:0' could not be parsed.
Source=Microsoft.Azure.Functions.Worker.Grpc

解决步骤

1. 升级Functions Core Tools到最新v4稳定版

旧版本的Core Tools可能与.NET 6隔离模式Worker不兼容,执行以下命令检查版本:

func --version

如果版本低于v4.x,安装最新稳定版。

2. 修正项目调试配置

  • 右键Azure Function项目 → 属性 → 调试
  • 确认"启动"选项选择为Functions,而非项目名称
  • 检查调试环境变量,删除手动设置的FUNCTIONS_WORKER_RPC_URI或异常的AzureWebJobsScriptRoot变量,让工具自动生成正确配置

3. 显式配置Grpc端口(可选但有效)

修改自动生成的Program.cs,显式指定Grpc连接端口,避免自动分配异常:

using Microsoft.Extensions.Hosting;
using Grpc.Core;

var host = new HostBuilder()
    .ConfigureFunctionsWorkerDefaults(builder =>
    {
        builder.UseGrpc(options =>
        {
            options.Channel = new Channel("localhost:50051", ChannelCredentials.Insecure);
        });
    })
    .Build();

host.Run();

需通过NuGet安装Grpc.Core包。

4. 清理项目缓存并重新生成

  • 删除项目根目录下的bin、obj文件夹
  • 右键解决方案 → 清理解决方案,再重新生成整个项目
  • 重启Visual Studio和Functions Core Tools,避免残留进程导致的端口冲突

5. 检查local.settings.json配置

确保文件中包含隔离模式的正确配置,无错误项:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated"
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 23:01:12