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

.NET 8独立模型Azure Function本地启动报错:gRPC URI解析失败

.NET 8独立模式Azure Function本地启动报错:gRPC URI解析失败

我在VS 2022中尝试本地启动.NET 8独立模型(Isolated Worker Model)的Azure Function App时,执行到host.Run();时抛出gRPC URI解析失败的异常,无法正常运行。我没有直接使用gRPC,推测问题与宿主或启动代码相关,不确定是否遗漏了配置步骤(比如Azurite)或依赖库存在问题。

启动代码

using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using <namespace>.FunctionApps.Extensions;
using Serilog;

var environment = Environment.GetEnvironmentVariable("AZURE_FUNCTIONS_ENVIRONMENT");

IConfiguration configuration = new ConfigurationBuilder()
    .AddJsonFile("host.json", optional: true, reloadOnChange: true)
    .AddJsonFile($"host.{environment}.json", optional: true, reloadOnChange: true)
    .AddEnvironmentVariables()
    .Build();

var logger = new LoggerConfiguration()
    .WriteTo.Console()
    .CreateLogger();

Log.Logger = logger;

var builder = new HostBuilder()
    .ConfigureFunctionsWorkerDefaults()
    .ConfigureServices(services =>
    {
        services.AddApplicationInsightsTelemetryWorkerService();
        services.ConfigureFunctionsApplicationInsights();

        services.RegisterServices(configuration, logger);

    });

var host = builder.Build();

host.Run();

抛出的异常

System.InvalidOperationException: 'The gRPC channel URI 'http://:' could not be parsed.'

Service Bus函数代码

using Microsoft.Azure.Functions.Worker;
using <namespace>.Common.Helpers;
using <namespace>.InterimSolutionModels.Extensions;
using <namespace>.Models.DispatchMessages;
using <namespace>.ServiceBus;
using Serilog;

namespace <namespace>.FunctionApps.Functions.DistributionList
{
    public class DeleteDistributionList(ILogger logger)
    {
        private readonly ILogger _logger = logger;

        [Function(nameof(DeleteDistributionList))]
        [ServiceBusOutput(QueueNames.InterimProcessing, Connection = "ServiceBusConnectionString")]
        //public void Run([ServiceBusTrigger(QueueNames.Group.DistibutionListQueue.DeleteDistibutionList, Connection = "ServiceBusConnectionString")] ServiceBusReceivedMessage message)
        public string Run([ServiceBusTrigger(QueueNames.Group.DistibutionListQueue.DeleteDistibutionList, Connection = "ServiceBusConnectionString")] DistributionListDeleteMessage message)
        {
            _logger.Information($"Received Message: {message}");

            var interimDistibutionListDelete = message.ToInterimModel();

            var outPutJson = JsonHelper.ToJson(interimDistibutionListDelete);

            return outPutJson;
        }
    }
}

项目文件内容

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <AzureFunctionsVersion>v4</AzureFunctionsVersion>
    <OutputType>Exe</OutputType>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <PublishReadyToRun>true</PublishReadyToRun>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Azure.Storage.Blobs" Version="12.13.1" />
    <PackageReference Include="Azure.Storage.Files.Shares" Version="12.1.0" />
    <PackageReference Include="Microsoft.Azure.Functions.Worker" Version="1.20.1" />
    <PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.ServiceBus" Version="5.15.0" />
    <PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs" Version="6.0.0" />
    <PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues" Version="5.2.0" />
    <PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" Version="1.16.4" />
    <PackageReference Include="Microsoft.ApplicationInsights.WorkerService" Version="2.22.0" />
    <PackageReference Include="Microsoft.Azure.Functions.Worker.ApplicationInsights" Version="1.1.0" />
    <PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
    <PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="8.0.1" />
    <PackageReference Include="Serilog" Version="3.1.1" />
    <PackageReference Include="Serilog.Extensions.Logging" Version="8.0.0" />
    <PackageReference Include="Serilog.Settings.Configuration" Version="8.0.0" />
    <PackageReference Include="Serilog.Sinks.Console" Version="5.0.1" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="<Path/Namespace>.Common.csproj" />
    <ProjectReference Include="..\<Path/Namespace>.ServiceBus.csproj" />
    <ProjectReference Include="..\<Path/Namespace>.Service.csproj" />
  </ItemGroup>
  <ItemGroup>
    <None Update="host.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <None Update="local.settings.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <CopyToPublishDirectory>Never</CopyToPublishDirectory>
    </None>
  </ItemGroup>
  <ItemGroup>
    <Using Include="System.Threading.ExecutionContext" Alias="ExecutionContext" />
  </ItemGroup>
</Project>

已尝试的操作

  • 更新项目模板并重新创建Function App项目,问题未解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 06:52:33