Здравствуйте, я хочу знать, есть ли способ остановить и перезапустить приложение Asp Net Core
, введя маршрут к серверу.
Предположим, User A
запускает долгосрочную задачу, идущую по маршруту A
на сервере.
Я хочу, чтобы User B
мог получить доступ к маршруту B
на сервере и, таким образом, остановить сервер и перезапустить его. Я не хочу убивать весь процесс, просто Webhost
. Мне не важно в моем сценарии о безопасном завершении работы пользователя A
, я просто хочу убить его и запустить его как можно скорее.
Я видел, что есть расширение для IWebHost
RunAsync
. Я хотел бы знать, могу ли я определить определение CancellationTokenSource
в Program.Main
, установить его для WebHost
и вызвать его cancel
, когда кто-то Доступ к определенному маршруту.
public static void Main(string[] args)
{
CancellationTokenSource tsc=new CancellationTokenSource();
//pass the token to the webhost,\
CreateHostBuilder(args).Build().RunAsync(tsc); //wrap it in a Task if need arises
}
public static IWebAssemblyHostBuilder CreateHostBuilder(string[] args) =>
BlazorWebAssemblyHost.CreateDefaultBuilder()
.UseBlazorStartup<Startup>();
Startup
public void Configure(IApplicationBuilder builder)
{
var tokenSource=..... //extract the tokensource somehow
builder.UseCors((p) => p.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod().AllowCredentials());
builder.UseWebSockets();
builder.Map("/userA", app =>
{
app.UseMiddleware<StatusWare>();
});
builder.Map("/userB", app =>
{
tokenSource.cancel();
});
}