2012-08-28 2 views
2

Мне нужно было перенаправить запрос на другое действие с помощью TempData для определенных запросов. Я знаю, что TempData использует сеанс для хранения данных.MVC RedirectToAction и LoadBalancing

Если запрос достигнет сервера01 и запрос, перенаправленный с помощью TempData, на другое действие, будет ли запрос оставаться на сервере01 или он может перейти на server02? Если он перейдет на server02, я не смогу правильно обрабатывать TempData.

Есть ли способ сохранить запрос на сервере01 для конкретных перенаправлений? или мне нужно создать файл cookie, который указывает данные на моем db и проверить запрос, существует ли файл cookie?

Привет

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

ответ

1

Есть ли способ сохранить запрос на сервере01 для конкретных перенаправлений?

Вы должны использовать StateServer или SQLServer к store your sessions вместо InProc. Другая возможность - настроить балансировку нагрузки всегда, чтобы отправлять запросы с одного и того же IP-адреса на один и тот же сервер.

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

<sessionState mode="Off" /> 
Смежные вопросы