Сервер состояний ASP.net теряет сеанс в среде с балансировкой нагрузки

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

  • Установите все серверы на один и тот же государственный сервер
  • Убедитесь, что все ключи машины в web.config совпадают
  • Убедитесь, что все ключи machineKeys в файле machine.config совпадают
  • Убедитесь, что все пути к файлам веб-сервисов совпадают (с учетом регистра)
  • Убедитесь, что у всех сервисов одинаковый идентификатор

Сеанс просто не будет сохраняться на нескольких веб-серверах. Ниже приводится информация о сеансе web.config:

    <sessionState cookieless="UseCookies" mode="StateServer" stateConnectionString="tcpip=[ipAddress]:42424" stateNetworkTimeout="30" timeout="60" />

Любые идеи? Я вне их. Спасибо!


person hobeau    schedule 04.06.2013    source источник
comment
Еще кое-что. Это происходит по ssl (https).   -  person hobeau    schedule 05.06.2013


Ответы (1)


Мне сказали, что невозможно сохранить данные сеанса в многосерверной среде, если вы не используете экземпляр SQL Server для их хранения ... Я предполагаю, что вы знакомы с ним, но вот ссылка для тех, кто не может быть:

http://support.microsoft.com/kb/317604

person Troy Carlson    schedule 05.06.2013
comment
Да, SQL - это вариант, но государственный сервер - другой вариант. Служба состояний ASP - это служба внепроцессного кэширования, которая позволяет балансировать нагрузку на несколько серверов в одном сеансе. - person hobeau; 05.06.2013