Разрешение знака отмены распространяться из ServiceBase OnStop в сервисы WebHost - PullRequest
0 голосов
/ 08 февраля 2020

У меня есть какое-то наследие, которое выглядит идентично верхнему ответу в Хостинг ASP. NET Ядро как Windows Сервис .

Мой вопрос выходит за рамки - при остановке сервис; OnStopping правильно вызывается - как я могу позволить токену отмены или любому другому типу сигнала отсюда распространяться на реальные сервисы WebHost?

var hostBuilder = new WebHostBuilder().UseKestrel(options =>
            {
                options.ConfigureEndpoints();
            })
            .UseConfiguration(config)
            .UseStartup<Startup>()
            .UseSerilog((hostingContext, loggerConfiguration) =>
                loggerConfiguration.ReadFrom.Configuration(hostingContext.Configuration))
            .UseContentRoot(AppDomain.CurrentDomain.BaseDirectory);

        if (Debugger.IsAttached || args.ToList()
                .Contains("console"))
        {
            var host = hostBuilder.Build();

            host.Run();
        }
        else
        {
            var host = hostBuilder.UseContentRoot(pathToContentRoot)
                .Build();

            host.RunAsCustomService();
        }

Мне нужен сигнал выключения для распространения и быть доступным для разных частей хоста? Я не очень привык к asp. net, и этот MVC бизнес чрезвычайно раздражает - он так много скрывает от разработчика !!

Я не могу за всю жизнь понять, как разделить токен отмены между классом Startup и «Программой» (где находится основная точка входа, как и ссылка на публикацию).

В идеале я хотел бы сделать что-то вроде:

    var myCancellationToken = new CancellationToken();
    Startup.SetCancellationToken(myCancellationToken);
    host.RunAsCustomService(myCancellationToken);

Но я не могу получить доступ к автозагрузке.

Похоже, не так много ответов, объясняющих, как сигналы могут взаимодействовать с внутренними частями этого WebHost и MVC конвейера. Что это значит?

...