Приложение ASP.NET заканчивается сразу после запуска - PullRequest
1 голос
/ 29 сентября 2010

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

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

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

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

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

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

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

1 Ответ

2 голосов
/ 29 сентября 2010

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

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

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

void Application_Error(object sender, EventArgs e) 
{
}

зарегистрируйте их всех и проверьте их.

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

...