Я много изучал, но ничего не нашел...
Application_Start событие не срабатывает при публикации сайта. Однако он отлично работает на локальном хосте. После публикации я получил App_global.asax.dll и App_GlobalResources.compiled в папке Bin, а также PrecompiledApp.config в корне.
Ответ 1 · рейтинг 4 · masoud ramezani
Событие Application_Start запускается при первом запуске приложения. Это не имеет ничего общего с перезагрузкой машины или перезапуском IIS. Пробовали ли вы создать новый пример приложения и протестировать, что событие Application_Start этого приложения работает хорошо или нет. Если да, то конфигурация вашего приложения каким-то образом повреждена.
возможно, вам поможет перезапуск пула приложений.
Ответ 2 · Matías Fidemraizer
Возможно, это событие запускается, как и ожидалось, но, поскольку вы выполняете предварительно скомпилированную сеть и находитесь в режиме выпуска, символы отладки отсутствуют - в случае попытки удаленной отладки вашего приложения -.
Другой возможной причиной является то, что он срабатывает, но в обработчике Application_Start выдается какое-то исключение, и, поскольку оно вызывается один раз за жизненный цикл приложения, вам потребуется перезапустить пул приложения или перезапустить весь IIS.
Ответ 3 · sisve
Ваш код, указанный в других комментариях:
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/..."))