繁体   English   中英

让ASP.Net Core关闭在IISExpress中触发ApplicationStopping事件

[英]Getting ASP.Net Core shutdown triggering ApplicationStopping event in IISExpress

我知道有一个先前的问题,还有一个GitHub问题: https//github.com/aspnet/Hosting/issues/846似乎从Microsoft.AspNetCore.Server.IISIntegration 1.1解决。 但是,尽管有这个版本,这似乎仍然无法在IISExpress中工作(我通过让它执行Debug.WriteLine并在ApplicationStopping和ApplicationStopped上写入日志文件来测试它)。 我正在使用工具托盘小部件关闭IISExpress。

我不确定我是否做错了,是否以这种方式关闭IISExpress作为'正常关闭'来触发这些事件。 看起来这可能在IIS中运行良好,但你无法在本地使用ASP.Net Core和完整的IIS进行开发,所以我想知道是否有任何方法可以在开发环境中触发这些事件进行测试?

这是Startup.cs中的代码:

public void Configure(IApplicationBuilder app, IApplicationLifetime life, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
        // other configure code here

        life.ApplicationStopping.Register(() =>
            Debug.WriteLine(">>Stopping"));
        life.ApplicationStopped.Register(() =>
            Debug.WriteLine(">>Stopped"));
    }

我有一个包含所有最新NuGet更新的应用程序,可以验证在IISExpress下不会触发ApplicationStopped和ApplicationStopping。 ApplicationStarted似乎工作正常。

我发现如果你直接在我的开发环境中调用应用程序一切都很好。

这篇文章告诉你如何。

从下拉框中选择应用程序非常简单:

例

我意识到这与使用IIS Express不同,但可能会帮助您解决问题。

几乎忘记了,要调用,您需要在启动应用程序时出现的命令窗口中键入Ctrl + C.

也许你可以在从HttpApplication派生的类中使用Application_End方法。 卸载应用程序时将调用此方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM