2010-09-29 7 views
1

Имея небольшую проблему с моими размещенными приложениями ASP.NET. Я заметил замедленность при открытии страниц, медленность, которую вы видите при первом запуске приложения ASP.NET. После исследования я обнаружил, что событие Application_End запускается вскоре после запуска приложения, по-видимому, убивая сеансы, статические значения и т. Д.Приложение ASP.NET, заканчивающееся сразу после запуска

У меня есть стандартная настройка по умолчанию web.config, и я пишу когда запрашивается страница. Но по какой-то причине приложение не ждет 20 минут (или что бы то ни было по умолчанию) до смерти - иногда это всего лишь минута или две, а иногда и меньше.

Конечно, это не происходит локально в моей среде dev - все работает так, как ожидалось, с идентичными значениями кода и web.config.

Существует только один сервер, поэтому нет фермы или чего-либо подобного.

Я знаю, что есть много вещей, из-за которых приложение ASP.NET заканчивается - перезагрузка IIS, повторная загрузка пула приложений, изменение файла DLL или файла конфигурации, перезагрузка и т. Д. Но я надеюсь лучше подумать, когда я сообщите об этом моей хостинговой компании, чтобы помочь исследовать и устранить проблему. Сервер не перезагружается, и я не изменяю какие-либо файлы, поэтому, похоже, я снова запускаю IIS или пул приложений, если только я не пропущу что-то еще.

Перезапуск IIS находится в средстве просмотра событий Windows, поэтому его достаточно легко найти. Предполагая, что это не так, есть ли способ точно определить, почему приложение продолжает выполнять сброс?

Любые мысли, которые могут возникнуть в связи с этим, будут оценены по достоинству.

+0

Ответ, вероятно, лежит в Журнале событий. –

+0

@Darin: Если это перезапуск IIS, это произойдет, но я не думаю, что обычная утилизация приложений или запуск/остановка приложения регистрируются в журнале событий, не так ли? Записываются ли они где угодно? –

+1

Пул приложений перезапускается, вероятно, из-за сбоя. Аварии регистрируются. Если вы наблюдаете это поведение при первом запросе, возможно, что во время инициализации в методе Application_Start выбрано исключение. –

ответ

2

Это одна из причин, по которым вы можете подумать и проверить.

  1. команда, закрывающая приложение.
  2. ошибка/замкнутый цикл, который разбивает приложение.
  3. Предел памяти в пуле приложений, который отключает приложение. (это возможно)
  4. очень плохая конфигурация iis и пула на общем сервере или на виртуальном сервере. Может быть, слишком много сайтов на одних и тех же iis, и в то же время плохая настройка пула?

Вы можете проверить наличие ошибок на global.asax

void Application_Error(object sender, EventArgs e) 
{ 
} 

на журнал все из них и проверить их.

Вы можете проверить настройку пула, если у вас есть доступ к iis, или попросите администратора проверить его и удалить ограничения перезапуска памяти.

+0

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

+0

@Joe, вам нужно спросить у своей хостинговой компании, чтобы проверить, перезапускают ли пул на любых ограничениях памяти. (и этого вы не можете найти в журнале) – Aristos

+0

Моя хостинговая компания сообщила мне, что для борьбы с проблемами памяти они помещают 5-минутный таймер бездействия в пул приложений - это не объясняет все, так как он умер менее чем 5 минут часто, но кажется, что они определенно задействуют пул приложений в этом конце. –