实现 IRegisteredObject 时不调用 stop 方法

Posted

技术标签:

【中文标题】实现 IRegisteredObject 时不调用 stop 方法【英文标题】:stop method is not call when implement IRegisteredObject 【发布时间】:2015-04-28 06:21:56 【问题描述】:

当 w3wp.exe 被 IIS 关闭时,我试图写一行日志。 但是我从未见过该日志出现。

另外,我在本地尝试使用虚拟 asp.net mvc 应用程序。 在控制器中,我执行了一个虚拟 for 循环以保持请求继续进行,同时我有一个下面检测器的副本

https://katanaproject.codeplex.com/SourceControl/latest#src/Microsoft.Owin.Host.SystemWeb/ShutdownDetector.cs

ShutdownDetector sd = new ShutdownDetector();
sd.Initialize();

想如果我强制终止 w3wp.exe 进程,应该触发停止方法。但没有运气。

有人知道吗?

【问题讨论】:

【参考方案1】:

也许您可以在Global.asax.cs 中使用Application_End(object sender, EventArgs e)

参数 发件人 事件的来源。 电子 包含事件数据的 System.EventArgs。 要求 平台: Windows 2000, Windows XP Professional、Windows Server 2003.NET Framework 安全性: 完全信任直接调用方。此会员不能使用 部分受信任的代码。

来源:Global.Application_End Method

对我来说很好用。它会在应用程序池关闭时触发,并且比使用IRegisteredObject 更简单。

【讨论】:

以上是关于实现 IRegisteredObject 时不调用 stop 方法的主要内容,如果未能解决你的问题,请参考以下文章

-performDragOperation:从停靠堆栈拖动时不调用

为啥在应用程序已经运行时不调用 application:openFile: ?

导航到模块中的视图时不调用 OnNavigatedTo

怎么在调用异步请求时不阻塞当前线程

插入时不调用 Core Data 的自定义验证方法

iOS:调用 AppDelegate 的打开 url 时不显示 Touch Id