2016-02-16 5 views
0

Я борюсь со следующей проблемой. Установка:HttpContext.Session имеет значение null за маршрутизацию запроса заявки (ARR)

  • ASP.NET приложение WebForms на .NET 4.
  • состояния сеанса Государственной службой.
  • Три веб-серверов. Все три узла веб-приложения. Один из них также действует как контроллер ARR.

Веб-сервер 1: Windows 2012. IIS 8. Государственная служба ASP.NET. Контроллер ARR.

Вебсервер 2: для Windows 2012 IIS 8.

вебсервер 3: Windows Server 2008R2. IIS 7.5. Установлен ASP.NET 4.5.2.

Во время навигации/переключения между серверами, то Httpcontext.Session равно нулю:

HttpContext context = HttpContext.Current; 
if (context.Session == null) 
{ 
    CurrentLogger.Logger.Info("Context.Session is null"); 
} 

Если мне повезет, и запрос перенаправляется на тот же сервер, он держит сессию.

Сервер sessionState настроен так:

<sessionState mode="StateServer" stateConnectionString="tcpip=192.168.2.53:42424" cookieless="false" timeout="30" /> 

Я также установить машину Key:

<machineKey validationKey="[xxxxx]" decryptionKey="[xxxx]" validation="SHA1" /> 

Я требую все мои куки отправляются только через SSL. Используя журнал IIS, я вижу, что это не проблема. Файлы cookie auth & отправляются всем веб-серверам.

Что может привести к тому, что моя сессия будет равна нулю между серверами?

ответ

0

Решение находится здесь: https://stackoverflow.com/a/456238/167196.

Для поддержания состояния сеанса на различных веб-серверов в веб-ферме, путь приложения веб-сайта (например, \ LM \ W3SVC \ 2) в Internet Information Services Microsoft (IIS) Метабаза должен быть для всех веб-серверов в веб-ферме. Случай также должен быть таким же, потому что путь приложения зависит от регистра.

 Смежные вопросы

  • Нет связанных вопросов^_^