Ответ 1
Это включено в MVC 2 Futures. Подробнее см. http://blogs.msdn.com/rickandy/archive/2009/12/17/session-less-mvc-controller.aspx.
Мы создаем приложение ASP.NET MVC, которое будет развернуто за аппаратным балансиром нагрузки, который поддерживает, помимо прочего, кеширование.
Наше предложение состоит в том, чтобы вручную определить, какие шаблоны URL должны быть кэшированы балансировщиком нагрузки. Это будет довольно простой процесс для нас, поскольку у нас есть страницы "каталога", которые являются относительно статичными, а затем "упорядоченными" страницами, которые не являются.
Необходимо избегать использования состояния сеанса на кэшированных страницах, так как весь ответ кэшируется балансировщиком нагрузки - сюда относятся любые отправленные файлы cookie.
В идеале должен существовать атрибут, который может применяться к контроллерам или методам действий, которые позволяют выборочно использовать состояние сеанса, но, похоже, не существует. Я понимаю, что подобный подход приведет к потерянным сеансам, если использование оставляет "зону сеанса" - это прекрасно.
Помимо повторной реализации всего HTTP-контроллера ASP.NET MVC... любые предложения?
Спасибо заранее.
Это включено в MVC 2 Futures. Подробнее см. http://blogs.msdn.com/rickandy/archive/2009/12/17/session-less-mvc-controller.aspx.
Теперь он перемещается из фьючерсов в MVC3. Там атрибут ControllerSessionState
(по-видимому, будет иметь имя SessionState
для окончательной версии MVC3), который может быть применен к контроллеру, примерно так:
[SessionState(SessionStateBehavior.Disabled)]
public class MyController : Controller
{
...
(Но в версии RC вы должны использовать ControllerSessionState