Повторное использование процессов IIS

Я прочитал статью MSDN (ссылка), в которой что-то говорится о Утилизация процесса IIS и получается, что

Новый процесс запускается до остановки старого рабочего процесса, после чего запросы направляются новому процессу.

Но когда я прочитал следующую часть этой статьи, я увидел это:

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

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

Итак, я немного смущен.

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

Все, что я хочу знать, это то, что если есть какой-либо шанс, любая возможность, что IIS может пойти таким плохим путем и разрушить мое приложение, или мне не следует об этом беспокоиться?


person AgentFire    schedule 02.11.2012    source источник
comment
Почему вы считаете, что ваше приложение не может работать в среде с несколькими экземплярами?   -  person John Saunders    schedule 02.11.2012
comment
Из-за некоторых приращений в Session и других вещей, которые хорошо контролируются с помощью locks.   -  person AgentFire    schedule 02.11.2012
comment
Я считаю, что это полностью зависит от того, как вы настроите свой пул приложений с рабочими потоками. Если вы оставите его равным 1 и у вас нет веб-фермы. Тогда вы должны быть в порядке.   -  person JP Hellemons    schedule 02.11.2012
comment
Вы читали то, что я дал ссылку выше? Даже если есть только один рабочий процесс, всегда есть рециклинг, который может и будет создавать второй поток, пока первый все еще работает.   -  person AgentFire    schedule 02.11.2012
comment
..and requests are then directed to the new process. насколько я знаю, это не вызывает никаких странных проблем с переменными сеанса и т. д. p.s. у вас есть сеансы inproc или в sql/sessionstateserver   -  person JP Hellemons    schedule 02.11.2012
comment
@JPHellemons это - нет. Я спрашиваю, будут ли они перенаправлены обратно на старый процесс (даже один запрос) или нет.   -  person AgentFire    schedule 02.11.2012
comment
Я понимаю, что это не говорит вам не перерабатывать, а говорит вам отключить перекрывающуюся переработку.   -  person Stephen S.    schedule 09.11.2012


Ответы (1)


IIS по умолчанию будет периодически перезапускаться; это нормальное и здоровое поведение (освобождает системные ресурсы). IIS будет только временно запускать несколько процессов для одного и того же приложения. При перезапуске запустится новый процесс, а исходный будет работать только до тех пор, пока не будут завершены текущие действия или не истечет период ожидания. Если вас беспокоит состояние сеанса, загляните в State Server (SQL является предпочтительным методом). У меня есть пара сообщений по этой самой проблеме, но посмотрите этот ссылка.

person alan    schedule 02.11.2012