Может ли приложение «умереть» без передачи Application_End или Application_Error?

2

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

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

Теги:
iis-6
asp.net-2.0

1 ответ

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

  • 0
    System.StackOverflowException был плохим парнем в этом случае. Спасибо за помощь :) Я не могу редактировать ваше сообщение, поэтому было бы неплохо, если бы вы добавили эту информацию в свое сообщение.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню