Настройте отдельный порт для GRP c и остальных API в. net Core API версии 3.1 - PullRequest
0 голосов
/ 04 февраля 2020

Ранее мы использовали. net core 2.1 API, В том же проекте мы выставляли два порта, один для остальных API и другой для GRP C

Ниже описан наш запуск и программа Файл выглядит как

Файл запуска

  public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        //Proces for GRPC server binding
        Server server = new Server
        {
            Services = { HealthCheck.BindService(new HealthCheckController()),
                         },
            Ports = { new ServerPort("0.0.0.0", 5001, ServerCredentials.Insecure) }
        };
        //Start GRPC server
        server.Start();
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseHsts();
        }

        app.UseHttpsRedirection();
        app.UseMvc();
    }

Файл программы

public static class Program
{
    public static void Main(string[] args)
    {
        CreateWebHostBuilder(args).Build().Run();
    }

    public static IWebHostBuilder CreateWebHostBuilder(string[] args)
    {
        return WebHost.CreateDefaultBuilder(args).UseStartup<Startup>();
    }
}

Теперь мы хотим перенести тот же проект в. net core 3.1 и хотим поддерживать два отдельных порта, один для GRP C и другой для остальных API

Ниже показано, как выглядит наш файл запуска и файл программы

Файл запуска

  public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {

        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.UseRouting();

        app.UseAuthorization();

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapGrpcService<HealthCheckController>();
            endpoints.MapControllers();
        });
        //Start GRPC server

    }

Файл программы

    public static class Program
{
    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }


    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            });
}
* 1020. * и остальные API приветствуется.

1 Ответ

0 голосов
/ 06 февраля 2020

Я не уверен, если или почему. net 3.1 потребует совместного использования одного и того же порта ( Можно ли объединить приложение gRP C и webapi в. NET Core 3.0 в C#? , кажется, предполагает, что, по крайней мере для 3.0, это было не так). Если вам нужно совместно использовать порт, вы можете использовать Kestrel с обратным прокси-сервером (https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-3.1#when -to-use-kestrel-with-a-reverse-proxy ), который должен направить трафик c в соответствии с его типом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...