gRPC - Setup singleton service

ASP.NET Core 的 gRPC service 預設是沒有 Singleton 的,所以如果今天 gRPC client 發送多次訊息給 gRPC server。


gRPC server 會建多次 gRPC service 實體。


為避免這樣的情況,可在 Startup 的 ConfigureServices 內透過 services.AddSingleton 將 Service 的實體帶入。

1
2
3
4
5
6
7
8
9
10
11
12
...
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
...
services.AddGrpc();
services.AddSingleton(service);
...
}
...
}


gRPC server 就只會用指定的 gRPC service 實體去做事。