【问题标题】:Is there a way to know that IIS wants to shut down my web app?有没有办法知道 IIS 想要关闭我的 Web 应用程序?
【发布时间】:2020-08-05 17:43:13
【问题描述】:

我正在考虑将 QueueBackgroundWorkItem 用于我的 ASP.NET Web-API2 REST 服务器中的后台工作项。这非常适合我的用例,因为在关闭 Web 应用程序之前,所有正在运行的作业都已完成并写入数据库。替换的网络应用程序接管并可以返回已完成的作业。

但是,当我在后台线程中完成一项工作时,如果 IIS 想要关闭应用程序,我不想启动另一个工作。有没有办法查明 IIS 是否正在等待任务完成然后关闭?

【问题讨论】:

    标签: iis asp.net-web-api


    【解决方案1】:

    您可以尝试在启动类中使用配置。下面是配置参数:

    IApplicationBuilder

    IHostingEnvironment

    ILoggerFactory

    IApplicationLifetime

    在IApplicationLifetime接口中可以注册一个在应用停止时触发的事件:

    public class Startup
    {
        public void Configure(IApplicationBuilder app, IApplicationLifetime applicationLifetime)
        {
            applicationLifetime.ApplicationStopping.Register(OnShutdown);
        }
    
        private void OnShutdown()
        {
             //this code is called when the application stops
        }
    }
    

    您可以参考以下链接或更多详细信息:

    How to listen to IIS shutdown event in ASP.NET

    【讨论】:

    猜你喜欢
    • 2017-09-19
    • 1970-01-01
    • 1970-01-01
    • 2015-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-09
    • 2012-02-01
    相关资源
    最近更新 更多