Подтвердить что ты не робот

Как узнать причину перезапуска приложения ASP.NET

Есть ли способ отслеживать (регистрировать) причину перезапуска приложения ASP.NET?

Теперь у нас проблема с довольно сложным сайтом. Он перезапускается во время загрузки файла. Не по каждому файлу, но на каждом 5-м-10-м наверняка. Мы используем собственный VirtualPathProvider, поэтому это может быть причиной. У нас также есть потоки рабочего стола, и это также может быть причиной. Было бы здорово узнать причину.

Проблема возникает в XP (IIS 5.1) и Windows Server 2003 (IIS 6).

Разрешение:

Спасибо, ребята, нам удалось это поймать. Это вызвано максимальными рекомпиляциями. Скорее всего, проблема в нашем VirtualPathProvider, но это совершенно другой вопрос.

Резюме подходов:

  • Взлом в блоге ScottGu отлично работает.
  • Мониторинг через machine.config также замечательный, но я предпочитаю записывать его в наш журнал.
  • Как оказалось, самым простым решением является проверка свойства HostingEnvironment.ShutdownReason в моем методе Application_End.
4b9b3361

Ответ 2

Добавление или удаление папок внутри папки приложения приведет к тому, что пул приложений будет перерабатываться (наиболее вероятная причина в вашем случае), а также многое другое. Вот интересная статья:

http://blogs.msdn.com/johan/archive/2007/05/16/common-reasons-why-your-application-pool-may-unexpectedly-recycle.aspx

на том же сайте есть несколько хороших советов о том, как отслеживать перезагрузки, которые вы действительно спрашивали. Возможны следующие варианты: web.config и EventViewer или Performance Monitor.

http://blogs.msdn.com/johan/archive/2008/02/18/monitoring-application-pool-and-application-restarts.aspx

Ответ 3

Тесс Феррандез, ASP.NET Escalation Engineer имеет хороший блог со всеми советами и трюками для отладки приложений ASP.NET.

Сообщения, которые вас особенно интересуют:

Она проведет вас через шаг, связанный с разработкой проблемы, и как ее решить.

Еще одна вещь, о которой следует помнить, - это файлы сканирования антивирусного программного обеспечения под корнем сайта - это может изменить измененную дату файла и привести к перезагрузке приложения.

Ответ 5

Как говорили другие, проверьте HostingEnvironment.ShutdownReason. если значение BinDirChangeOrDirectoryRename, то какой-то процесс изменяет некоторые файлы (создание, удаление, изменение атрибута) в папке приложения.

Если вы не можете найти, кто это делает, используйте Process Monitor из SysInternals. В моем случае это был антивирусный процесс, который устанавливал файлы CreationTime (к их предыдущему CreationTime!).