应用程序可以在不传递Application_End或Application_Error的情况下“死掉”吗?

时间:2009-10-29 11:38:20

标签: c# iis-6 asp.net-2.0

我正在处理的当前应用程序似乎经常回收应用程序池,但是当它结束时,id没有通过Application End或Application Start。 这就是我的Global.asax的样子。

protected void Application_Start(object sender, EventArgs e)
{
    _log.Info("Application_Start");
}
    protected void Application_End(object sender, EventArgs e)
{
    _log.Info("Application_End");
}
    protected void Application_Error(object sender, EventArgs e)
{
    _log.Error("Application_Error");
    _log.Error(Server.GetLastError());
}

什么可能导致应用程序“死”而不传递结束或错误?

1 个答案:

答案 0 :(得分:3)

从技术上讲,它应该在应用程序池重置时触发。某些东西是否有可能处置_log对象,或者将其置于导致其无法记录的状态?

这对你的情况没有帮助,但是我正在添加它,而我正试图找到一个答案,因为它有点相关并需要注意:

http://forums.asp.net/p/948103/1152361.aspx#1152361

尝试将事件切换到Application_OnEnd并查看是否有效。我看到另一篇文章谈到这一点。 http://bytes.com/topic/asp-net/answers/326302-application_end-not-fired-when-app-unloaded-why