Событие Application_Start не срабатывает при публикации

Я много изучал, но ничего не нашел...

Application_Start событие не срабатывает при публикации сайта. Однако он отлично работает на локальном хосте. После публикации я получил App_global.asax.dll и App_GlobalResources.compiled в папке Bin, а также PrecompiledApp.config в корне.


person Ashish Kumar    schedule 24.08.2011    source источник


Ответы (3)


Событие Application_Start запускается при первом запуске приложения. Это не имеет ничего общего с перезагрузкой машины или перезапуском IIS. Пробовали ли вы создать новый пример приложения и протестировать, что событие Application_Start этого приложения работает хорошо или нет. Если да, то конфигурация вашего приложения каким-то образом повреждена.

возможно, вам поможет перезапуск пула приложений.

person masoud ramezani    schedule 24.08.2011
comment
Спасибо Масуд за ответ. Да, он отлично работает на локальном хосте, но после публикации веб-сайта событие не срабатывает. Любая подсказка.. - person Ashish Kumar; 24.08.2011
comment
какая у вас версия винды? - person masoud ramezani; 24.08.2011
comment
Windows Server 2003 Корпоративная редакция - person Ashish Kumar; 24.08.2011
comment
Рассмотрим мой сценарий: ** protected void Application_Start (отправитель объекта, EventArgs e) { logfile.ErrorLog (UserErrorLog\\UserErrorLog.txt, метод Application_Start, выполненный в + System.DateTime.Now); Поработай немного(); logfile.ErrorLog(UserErrorLog\\UserErrorLog.txt, выполнение метода Application_Start заканчивается в + System.DateTime.Now); }** - person Ashish Kumar; 24.08.2011
comment
эта проблема, скорее всего, связана с вашим сервером приложений, а не с вашим приложением. - person masoud ramezani; 24.08.2011
comment
В чем может быть проблема? Пожалуйста, предложите. - person Ashish Kumar; 24.08.2011
comment
@AshishKumar Эй, чувак, ты смог решить эту проблему? У меня такая же проблема. - person Vin Shahrdar; 31.10.2017

Возможно, это событие запускается, как и ожидалось, но, поскольку вы выполняете предварительно скомпилированную сеть и находитесь в режиме выпуска, символы отладки отсутствуют — в случае попытки удаленной отладки вашего приложения —.

Другой возможной причиной является то, что он срабатывает, но в обработчике Application_Start выдается какое-то исключение, и, поскольку оно вызывается один раз за жизненный цикл приложения, вам потребуется перезапустить пул приложения или перезапустить весь IIS.

person Matías Fidemraizer    schedule 24.08.2011
comment
Такого исключения нет. Я регистрируюсь в текстовом файле, когда элемент управления входит в событие Application_Start. Проблема в том, что на это мероприятие не приходит сам контроль. Рассмотрим мой сценарий: protected void Application_Start (отправитель объекта, EventArgs e) { logfile.ErrorLog (UserErrorLog\\UserErrorLog.txt, метод Application_Start, выполненный в + System.DateTime.Now); Поработай немного(); logfile.ErrorLog(UserErrorLog\\UserErrorLog.txt, выполнение метода Application_Start заканчивается в + System.DateTime.Now); } - person Ashish Kumar; 24.08.2011
comment
Я не могу помочь вам с этой ограниченной информацией, я попытался дать вам основные подсказки. - person Matías Fidemraizer; 24.08.2011
comment
Это пример кода, который я пытаюсь сделать. Отлично работает на локальном компьютере, но при публикации в режиме отладки событие Application_Start не срабатывает. Я проверил, есть ли исключения, но, к сожалению, исключений нет. protected void Application_Start(Object sender, EventArgs e) { logfile.ErrorLog("UserErrorLog\\UserErrorLog.txt", "Application_Start method executed at " + System.DateTime.Now); DoSomeWork(); logfile.ErrorLog("UserErrorLog\\UserErrorLog.txt", "Application_Start method execution ends at " + System.DateTime.Now); } Пожалуйста, спросите, если я не понимаю. - person Ashish Kumar; 24.08.2011
comment
Кто знает, чувак, и публикация кода в комментариях - не лучшее место для анализа вашей проблемы. Это будет трудно определить, не выполняя ваш реальный код. - person Matías Fidemraizer; 24.08.2011

Ваш код, указанный в других комментариях:

protected void Application_Start(Object sender, EventArgs e) {
    logfile.ErrorLog("UserErrorLog\\UserErrorLog.txt", "Application_Start method executed at " + System.DateTime.Now);
    DoSomeWork();
    logfile.ErrorLog("UserErrorLog\\UserErrorLog.txt", "Application_Start method execution ends at " + System.DateTime.Now);
}

Запись в UserErrorLog\\UserErrorLog.txt будет проблематичной при обычной настройке IIS, она попытается записать куда-нибудь в %SYSTEMROOT%\System32\Inetsrv, который является исполняемым каталогом IIS. Вам нужно либо указать абсолютный путь (C:\Logs\...), либо использовать HostingEnvironment.MapPath для разрешения пути на основе приложения (HostingEnvironment.MapPath("~/App_Data/Logs/..."))

person sisve    schedule 29.12.2013