Как реализовать службу Windows для управления состоянием сеанса? - PullRequest
1 голос
/ 20 июля 2010

Я работаю над веб-приложением ASP.NET MVC, которое будет развернуто на нескольких серверах с балансировкой нагрузки. При такой настройке у пользователя может быть один запрос, обслуживаемый сервером A, а следующий запрос будет обслуживаться ServerB или ServerC.

Мы не хотим хранить данные сеанса в базе данных, так как мы пытаемся минимизировать попадания в базу данных там, где это возможно. Таким образом, нам нужно, чтобы HttpSession управлялся и хранился на другом сервере.

Насколько я понимаю, это возможно с помощью службы Windows, которая будет управлять этим для меня, но я не знаю, как это реализовать. Может кто-нибудь указать мне хорошую документацию о том, как это сделать? Или какие-либо подводные камни или другие моменты, которые следует учитывать? Благодаря

Ответы [ 3 ]

4 голосов
/ 20 июля 2010

Вам нужно выделить машину, на которой будет размещена служба Windows NT, и на которой должна быть установлена ​​.NET (хорошо, вы можете использовать один из веб-серверов в качестве сервера состояний, но ИМХО, это было бы очень плохой идеей):

net start aspstate

И затем поручите вашему приложению использовать этот сервер:

<system.web>
  <sessionstate 
      mode="stateserver"
      cookieless="false" 
      timeout="20" 
      server="127.0.0.1" 
      port="42424" 
  />
</system.web>

, где, конечно, вы бы заменили 127.0.0.1 на IP-адрес сервера, на котором размещена служба NT.

Примечание 1: не забудьте украсить объекты, которые вы хотите сохранить в сеансе, с помощью атрибута [Serializable].

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

Подробнее о состоянии сеанса ASP.NET вы можете прочитать в MSDN .

0 голосов
/ 20 июля 2010

Другой альтернативой, которую вы можете рассмотреть, является Поставщики Memcached - это позволяет сохранять состояние сеанса в экземпляре memcached;возможно использование SQL Server в качестве запасного варианта.Лучшие из обоих миров, ИМХО.

0 голосов
/ 20 июля 2010

Как обычно, Питер хорошо освещает этот вопрос ...

http://www.eggheadcafe.com/articles/20021016.asp

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