所以我知道IServiceProvider将在应用程序关闭(干净)时处理,并且它正在管理的所有内容都将作为该操作的一部分进行处理。但是,如果主线程抛出该怎么办? IServiceProvider是否仍将被处置?
我问的原因是日志记录。在其他类型的应用程序中,我通常会用try catch包装主过程(在main方法中),然后在finally块中,确保已刷新日志缓冲区。因此,如果主线程抛出异常,则日志总是会被刷新。
我仍然可以确定这一点,但这意味着要尝试查找对在启动过程中创建的容器的引用,这会使您感到有些困惑。我觉得在内部封装ASP的过程以确保这种行为是很明显的事情,所以它确实可以,但是我想确定。
答案 0 :(得分:0)
您可以在管道配置期间注册全局异常处理程序中间件,以处理任何其他未处理的异常。在Configure()中,您只需进入app.UseExceptionHandler并传递自定义处理程序(或lambda)。