gRPC 在 Server 端會有一些常使用的設定,以下來做一些介紹
全域
services.AddGrpc(options =>
{
// 如果為 true,當擲回例外狀況時,會傳回詳細的例外狀況訊息給用戶端。
options.EnableDetailedErrors = true;
// 伺服器端可接收的最大訊息大小
options.MaxReceiveMessageSize = 2 * 1024 * 1024; // 2 MB
// 伺服器端傳送出去的最大訊息大小
options.MaxSendMessageSize = 5 * 1024 * 1024; // 5 MB
// 設定訊息壓縮演算法
options.ResponseCompressionAlgorithm = "gzip";
// 設定訊息壓縮等級
options.ResponseCompressionLevel = CompressionLevel.Optimal;
// Interceptor(攔截器)註冊
options.Interceptors.Add<LoggingInterceptor>();
});
針對單一服務
builder.Services.AddGrpc().AddServiceOptions<GreeterService>(options =>
{
//...
});
參考:
https://learn.microsoft.com/zh-tw/aspnet/core/grpc/configuration?view=aspnetcore-9.0