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

配置带Dapr gRPC Sidecar的.NET Aspire项目遇端点异常

解决.NET Aspire部署Dapr gRPC服务的端点异常问题

问题根源

当设置AppProtocol = "grpc"时,Aspire要求目标项目资源必须存在名为"grpc"的端点,否则会抛出The endpoint 'grpc' is not allocated for the resource异常。默认情况下Aspire仅自动识别HTTP端点,不会主动关联未声明的gRPC端点。

修复步骤

1. 在gRPC服务项目(Internal-Alpha)中声明gRPC端点

修改项目的Program.cs,明确配置并注册名为"grpc"的端点,确保端口与Aspire配置中的AppPort一致:

var builder = WebApplication.CreateBuilder(args);

// 注册gRPC服务
builder.Services.AddGrpc();

// 配置Aspire服务默认项,显式声明grpc端点
builder.AddServiceDefaults()
       .WithEndpoint("grpc", endpoint =>
       {
           endpoint.Port = 5021; // 与后续Aspire配置的AppPort保持一致
           endpoint.Protocol = "grpc";
       });

var app = builder.Build();

// 映射你的gRPC服务实现
app.MapGrpcService<YourGrpcServiceImpl>();

app.Run();

2. 调整Aspire AppHost配置

移除手动指定的AppPort(或确保其与项目端点端口一致),让Aspire自动关联项目声明的grpc端点:

builder.AddProject<Projects.InternalAlpha>("Internal-Alpha")
    .WithDaprSidecar(new DaprSidecarOptions()
    {
        AppId = "internal-alpha",
        // 移除AppPort,Aspire会自动绑定项目的grpc端点
        DaprHttpPort = 54021,
        DaprGrpcPort = 54022,
        AppProtocol = "grpc",
        LogLevel = "debug",
    });

验证逻辑

  • 项目本身启动正常说明gRPC服务实现无问题,异常仅源于Aspire的端点关联机制
  • Docker Compose可正常运行是因为直接端口映射,无需Aspire的端点识别校验

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 06:16:02