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

如何通过.NET Aspire让Blazor应用与gRPC API通信?

使用.NET Aspire连接gRPC服务的解决方案

1. AppHost项目配置

在AppHost的Program.cs中,为你的gRPC服务指定自定义名称,配置方式与REST服务一致:

var builder = DistributedApplication.CreateBuilder(args);

// 添加gRPC服务并设置专属名称"usersapi"
var usersApi = builder.AddProject<Projects.Bargeh_Users_API>("usersapi");

// 将Blazor Web App项目与gRPC服务关联
builder.AddProject<Projects.Bargeh_Main_Wapp>("bargehmainwapp")
    .WithReference(usersApi)
    .WithLaunchProfile("https");

builder.Build().Run();

2. Blazor Web App客户端配置

2.1 安装必要NuGet包

在Blazor项目中安装以下依赖包:

  • Grpc.Net.Client
  • Grpc.Tools(用于生成gRPC客户端代码)
  • 你的gRPC服务对应的客户端代码包(由.proto文件生成)

2.2 注册gRPC客户端

在Blazor项目的Program.cs中,利用Aspire的服务名称解析能力,直接使用gRPC服务的名称配置客户端地址:

builder.Services.AddGrpcClient<UsersApi.UsersApiClient>(options =>
{
    // 无需手动指定端口,直接使用Aspire分配的服务名称作为地址
    options.Address = new Uri("http://usersapi");
});

2.3 注入并调用gRPC服务

在Blazor组件或服务中,直接注入生成的gRPC客户端即可发起请求:

@inject UsersApi.UsersApiClient UsersGrpcClient

@code {
    private async Task CallGrpcService()
    {
        var request = new GetUserRequest { UserId = 1 };
        var response = await UsersGrpcClient.GetUserAsync(request);
        // 处理gRPC响应逻辑
    }
}

3. 关键注意事项

  • 确保gRPC服务端已正确配置端点,比如在服务的Program.cs中包含app.MapGrpcService<UsersApiService>();
  • 若使用HTTPS,需确保Aspire环境下客户端信任服务端证书
  • 连接异常时,可通过Aspire仪表板检查服务状态与名称是否匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 22:32:47