gRP C как Windows Сервис - PullRequest
       11

gRP C как Windows Сервис

0 голосов
/ 15 марта 2020

Я экспериментирую с gRp c и он работает. Я использую. net core 3.1. C#. Сейчас я пытаюсь установить его как сервис windows. Машина Win 10 Pro x64.

Я добавил строку, как указано, чтобы запустить ее как windows служба ...

public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            //https://docs.microsoft.com/en-us/dotnet/architecture/grpc-for-wcf-developers/self-hosted

            .UseWindowsService() // Enable running as a Windows service

            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            });

Я публикую sh в папку ( Я никогда раньше не использовал publi sh) и вуаля ... есть папка publi sh. Я go в эту папку и запускаю (КАК АДМИНИСТРАТОР) installutil. Да, он нашел утилиту, так как я использовал полный путь. Это путь

"C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ installutil.exe"

Это правильная версия бежать за. net ядром? Имеет ли это значение?

Итак, я запускаю installutil {полный путь к} \ grpcservice1.exe

Я получаю ...

Произошло исключение при инициализации установки: System.BadImageFormatException: не удалось загрузить файл или сборку 'file: /// .... \ GrpcService1 \ GrpcService1 \ bin \ Debug \ netcoreapp3.1 \ publish \ GrpcService1.exe' или одну из ее зависимостей. Модуль должен был содержать манифест сборки.

Я не могу понять, что я делаю неправильно .... Предложения? Я просто следую примеру.

TIA

1 Ответ

0 голосов
/ 15 апреля 2020

installutil.exe ищет класс Installer, помеченный RunInstallerAttribute, установленным на true. Это работает только для Windows Сервисов, написанных на. NET Framework.

В случае. NET Core, я бы рекомендовал опубликовать ваше приложение и зарегистрировать новый сервис с использованием sc create / New-Service, как и в случае с любым другим исполняемым файлом.

В документации *. 1025 * Core * также есть подробные документы . на случай, если вам нужно что-то более подробное.

...