主应用程序线程崩溃时是否会释放IServiceProvider?

问题描述 投票:0回答:1

所以我知道IServiceProvider将在应用程序关闭(干净)时处理,它管理的所有内容都将作为该操作的一部分进行处理。但是如果主线程抛出怎么办? IServiceProvider还会被处理吗?

我问的原因是记录。在其他类型的应用程序中,我通常用try catch包装主进程(在main方法中),然后在finally块中,我确保刷新日志缓冲区。因此,如果主线程抛出,则日志总是被刷新。

我仍然可以这样做,但这意味着试图找到在启动期间创建的容器的引用,并感觉有点kludgy。我觉得让ASP的进程内部包装以确保这种行为是显而易见的,所以它可能会这样做,但我想肯定地知道。

.net-core asp.net-core-2.1
1个回答
0
投票

您可以在管道配置期间注册全局异常处理程序中间件,以处理任何其他未处理的异常。在Configure()中,您只需转到app.UseExceptionHandler并传递自定义处理程序(或lambda)。

© www.soinside.com 2019 - 2024. All rights reserved.