Запрет IIS от запуска приложения, прежде чем предыдущий экземпляр был закрыт во время перезапуска - PullRequest
0 голосов
/ 10 ноября 2010

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

Ход действий идет примерно так. (около 20 секунд)

  1. Приложение работает, давайте назовем этот экземпляр A.
  2. Перезагрузка инициализирует
  3. Новый экземпляр запущен, давайте назовем это B (Logged by Application_Start)
  4. Запрос на поступление обрабатывается экземпляром B, это делает недействительными все кэшированные данные A.
  5. Таймер на экземпляре A срабатывает, предполагает, что его кеш действителен и записывает что-то недопустимое в постоянное хранилище.
  6. Экземпляр A выключен (зарегистрирован Application_End)

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

1 Ответ

1 голос
/ 20 июня 2011

Отключить перекрывающуюся переработку:

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

http://msdn.microsoft.com/en-us/library/ms525803(v=vs.90).aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...