2010-01-27 11 views
21

Мне нужно что-то понимать о состоянии сеанса ASP.NET, так как оно относится к IIS 7 и ASP.net 3.5.Состояние сеанса ASP.NET и несколько рабочих процессов

Если приложение настроено на использование в рабочем состоянии сеанса, будет ли оно работать нормально, если есть несколько рабочих процессов? Другими словами, работают ли рабочие процессы в состоянии сеанса?

Конфигурация по умолчанию для IIS 7 - это использование в процессе процесса сеанса и распределение максимум 10 рабочих процессов. Вполне вероятно, что эта конфигурация по умолчанию должна работать. Я имею дело с компанией, которая выпустила веб-приложение ASP.NET MVC, которое имеет некоторые проблемы, они обвиняют серверную среду. Утверждение состоит в том, что, поскольку я использую настройки по умолчанию для 10 рабочих процессов, это нарушает их состояние сеанса. Мне нужно знать, действительно ли это точная претензия. Я никогда не знал, что приложение ASP.NET не работает с настройкой по умолчанию, поэтому я немного смущен и должен иметь это разъяснение.

+1

Каковы проблемы, с которыми сталкивается приложение? Это на первый взгляд похоже на проблему рециркуляции рабочего процесса. –

+0

сеанс inproc не разделяется между рабочими процессами. Просто установите свой пул приложений на использование только 1, и проблемы исчезнут. – NotMe

ответ

21

Наличие нескольких рабочих процессов и использование InProc не похоже на совместимость.

this См:

Если включить режим Web-сад, установив атрибут webGarden истина в элементе processModel файла Web.config приложения, не используйте InProc состояния сеанса режима. Если вы это сделаете, потеря данных может произойти, если разные запросы на один и тот же сеанс обслуживаются различными рабочими процессами.

+0

это не работает. –

5

Возможно, я ошибаюсь, но, насколько мне известно, по умолчанию у вас есть только один рабочий процесс для каждого домена приложения с несколькими рабочими потоками для обработки запросов. В этом случае состояние сеанса In-Proc должно работать нормально (настройки по умолчанию).

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

Я думаю, что более одного рабочего процесса в ASP.NET относится к веб-садовому режиму, который вы должны специально включить, и если вы это сделаете, то вам нужно не управлять процессом. См. comment box on this page под заголовком «В процессе»,.

8

Более одного рабочего процесса является «веб-садом». Входящее состояние сеанса не будет работать правильно. Вам нужно будет использовать один рабочий процесс для вашего веб-приложения или использовать сервер состояния сеанса или SQL Server для состояния сеанса.