Правильный способ размещения как pnet core 3.1 grp c Сервер как Windows Сервис - PullRequest
0 голосов
/ 13 января 2020

У меня проблемы с размещением grpc сервера в службе windows. Если есть кто-нибудь, кто знает, как решить эту проблему с помощью недавнего ядра 3.1 (generi c host builder вместо предыдущего как pnet core host builder et c.), Я был бы признателен Это. Спасибо.

Что сделано:

  • Пример приложения grpc (greeter) был принят в желаемое состояние (изменение * 1013) *, добавить обработчики, настроить клиента).
  • Microsoft.Extensions.Hosting.WindowsServices пакет был установлен.
  • UseWindowsService() добавлен в цепочку IHostBuilder.
  • Приложение установлено как windows служба (например, через sc create).

Каково реальное поведение:

  • Приложение работает должным образом (связь клиент / сервер) при использовании в качестве простого exe без сервисные дополнения.
  • Сервис не реагирует на команды контроллера сервиса (он просто не запускается).
  • Когда раздел ConfigureWebHostDefaults удален из Program.cs, сервис реагирует на команды sc (хотя это бесполезно).

Каково ожидаемое поведение:

  • Приложение может работать grpc сервер также должен быть размещен в сервисе windows.

Соответствующий код:

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
#if false
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.ConfigureKestrel(kestrelOptions =>
            {
                kestrelOptions.ListenAnyIP(1234, listenOptions =>
                {
                    listenOptions.UseHttps(CertFilename, CertPassword);
                });
            })
            .UseStartup<Startup>();
        })
#endif
        .UseContentRoot(AppContext.BaseDirectory) // should be just redundant
        .UseWindowsService() // lifetime, content-root, default-hosted-service
    ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...