Asp.Net App Pool пересекались сроки переработки? - PullRequest
5 голосов
/ 28 октября 2010

Насколько я могу судить, когда рабочий процесс перезагружается:

а) новый запускается до того, как старый отключается б) старый отключается, когда все активные запросы его обслуживание завершают

Точность приведенного выше?

Если это так, у меня есть данные, которые я сохраняю в SQL после запуска Application_End () из файла global.ascx.Я возвращаю эти данные обратно при запуске Application_Start ().

Проблема основана на моем тестировании, новый рабочий процесс запускает Application_Start () до того, как мой старый рабочий процесс получит возможность завершить свой Application_End ().

Каковы наилучшие методы для решения этой ситуации?

заранее приветствует

edit: я только что заметил функцию в IIS 7 «Отключенный перекрывающийся цикл» - я предполагаюэто лучший маршрут

1 Ответ

5 голосов
/ 29 октября 2010

Ваше описание вторичной переработки точно, да (1); и есть параметр для его отключения, но он предназначен для предотвращения ошибок HTTP, которые вы бы повторно вводили. Повторное использование пула приложений - это обычное явление для управляемых приложений (обусловленное, помимо прочего, ограничением CLR, которое предотвращает выгрузку сборок в том же пространстве памяти), для которого вы должны разработать.

Вашей техникой будет сложно управлять в сценарии web-farm или web-garden .

Я думаю, что лучшим вариантом было бы полагаться на внешнее хранилище данных (с использованием продуктов распределенного кэша, таких как ScaleOut, App Fabric и т. П.), Чтобы все пулы приложений имели одинаковое представление кэшированных данных. ,

(1) - http://mvolo.com/blogs/serverside/archive/2008/02/25/Starting_2C00_-stopping-and-recycling-IIS-7.0-Web-sites-and-application-pools.aspx

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