Добавить / удалить службы Kestrel Grp c во время выполнения - PullRequest
0 голосов
/ 18 июня 2020

Вопрос: Можно ли зарегистрировать / отменить регистрацию сервисов grp c после запуска?

Ниже приведен традиционный способ регистрации сервиса grp c:

public class Startup
{
    // This method gets called by the runtime. Use this method to add services to the container.
    // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddGrpc();
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        app.UseRouting();

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapGrpcService<GreeterErvice>();
        });
    }
}

Taken из известного примера проекта grp c. net. Источники, например: https://github.com/grpc/grpc-dotnet/blob/master/examples/Greeter/Server/Startup.cs или https://docs.microsoft.com/en-us/aspnet/core/grpc/?view=aspnetcore-3.1

Каков рекомендуемый способ добавления / удаления служб после завершения запуска и запуска пустельги? Один из способов - использовать одну фиктивную службу маршрутизации, которая затем будет хранить реестр служб и маршрутизацию запросов к ним. Это, однако, требует изменения контрактов и, возможно, заново изобретает колесо правильного обнаружения и маршрутизации обработчиков.

...