【发布时间】:2021-11-12 23:21:35
【问题描述】:
我的 Startup.cs 中有这个:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, Microsoft.Extensions.Hosting.IApplicationLifetime appLifetime)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
appLifetime.ApplicationStopping.Register(() => Console.WriteLine("ApplicationStopping called"));
appLifetime.ApplicationStopped.Register(() => Console.WriteLine("ApplicationStopped called"));
}
我启动我的 dotnet 应用程序:dotnet run --project myapp/myapp.csproj。
我得到进程 ID:ps | grep "dotnet run --project myapp/myapp.csproj"
我向进程发送一个 sigterm:kill <PID>。
应用程序立即终止,我看不到控制台日志消息。 kill 应该默认发送一个 SIGTERM。
我是在使用 IApplicationLifetime 错误还是发送 SIGTERM 错误?
编辑
我认为我可能错误地使用了 IApplicationLifetime,因为我也添加了它,但我也从未看到这些消息:
appLifetime.ApplicationStarted.Register(() => Console.WriteLine("ApplicationStarted called"));
【问题讨论】: