Может ли приложение «умереть», не передавая Application_End или Application_Error? - PullRequest
2 голосов
/ 29 октября 2009

Кажется, что текущее приложение, над которым я работаю, очень часто перезапускает пул приложений, но когда оно заканчивается, id не проходит завершение приложения или запуск приложения.
Вот так выглядит мой 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());
}

Что может заставить приложение "умереть" без передачи End или Error?

1 Ответ

3 голосов
/ 29 октября 2009

Технически, он должен срабатывать при перезагрузке пула приложений. Возможно ли, что что-то избавляется от объекта _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

...