繁体   English   中英

Application_End未运行

[英]Application_End Not Running

我是C#的新手,所以请耐心等待。

我有一个在Global.asax.cs文件中的Application_Start函数中运行的函数,这在我开始调试时工作正常。

但是当我停止调试时,我在Application_End函数中的函数似乎没有启动。 我想知道这是否与调试有关,或者只是我的代码中的错误。

我猜应用程序永远不会结束。 在调试(使用Cassandra或IIS Express)或在IIS本身上运行安装时,应用程序不会在调试会话结束时结束。

在IIS上,它在工作进程停止时结束。 这会在一段时间后自动发生,具体取决于您的应用程序池设置。

在Cassandra和IIS Express中,当进程正常结束时会发生。 我想知道他们是否定期在这些装置上进行调用。

在Application_End中放入大量需要依赖触发的代码通常不是一个好主意。 考虑到ApplicationInstance将启动到将为您的应用程序提供服务的工作进程的每个线程,您将遇到在忙碌的站点上频繁调用Application_End的情况,因为流量会消耗和流动。

当对象从Cache到期时,您可能会发现使用具有滑动过期和回调函数的Cache对象更容易,以确保在需要时正确调用清理代码。

http://msdn.microsoft.com/en-us/library/05kd8d77(v=vs.110).aspx

我有一个类似的问题,其中没有调用Application_End ,因为当要求停止应用程序时有线程运行,并且因为只有在一切都停止正常后调用此方法。

然后,我发现了Application_Disposed 来自http://www.techrepublic.com/article/working-with-the-aspnet-globalasax-file/5771721/

Application_Disposed:在销毁应用程序之前触发。 这是清理以前使用的资源的理想位置。

暂无
暂无

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

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