是的,Asp.Net Core grpc可以使用不同的端口添加grpc服务。可以通过以下示例代码来实现:
{ "GrpcServices": { "MyService1": { "Host": "localhost", "Port": "5001" }, "MyService2": { "Host": "localhost", "Port": "5002" } }, ... }
public void ConfigureServices(IServiceCollection services) { ... var grpcServices = Configuration.GetSection("GrpcServices").GetChildren().ToList();
foreach (var grpcService in grpcServices)
{
services.AddGrpc(options =>
{
options.EnableDetailedErrors = true;
options.MaxReceiveMessageSize = null;
options.MaxSendMessageSize = null;
}).Services
.AddCodeFirstGrpc(config =>
{
config.Interceptors.Add();
config.EnableDetailedErrors = true;
var binder = new EndpointBinder(grpcService.GetSection("Host").Value, int.Parse(grpcService.GetSection("Port").Value));
config.BindEndpoint(binder);
});
}
...
}
app.UseEndpoints(endpoints =>
{
endpoints.MapGrpcService
现在,您可以使用不同的端口添加多个grpc服务。