我有一个Web服务,我希望在应用程序池结束时执行某些操作,所以我想我会这样做:
Application_End()
{
// Some logic here
}
如果我停止应用程序池,会执行此逻辑。 另一方面,如果我只是调用iisreset,那就不是。
所以我的问题是:我应该把我的代码放在哪里,以便在两种情况下执行它?
答案 0 :(得分:1)
无法保证将调用Application_End。您提到的示例,您执行IIS重置的示例就是一个示例。其他示例可能包括拔掉服务器或硬件故障的人。
我过去所做的是在应用程序重新联机时使用Application_Start来调用我的数据清理逻辑。这假设您不需要存储在内存中的任何值。
答案 1 :(得分:0)
我认为你不能。想象一下,如果您的代码触发无限循环,您基本上可以杀死Web服务器并停止关闭。