У меня есть рабочий процесс ASP.NET MVC, настроенный как два веб-сайта, управляемых балансировщиком нагрузки. Веб-сайты используют Sql Server в качестве поставщика состояния сеанса и отключили аутентификацию (это не обязательно).
Теперь иногда кажется, что я теряю состояние сеанса, и я считаю, что это связано с тем, что запрос обрабатывается альтернативным сервером, поэтому, по сути, пользователь прыгает с сервера на сервер, в зависимости от того, как балансировщик нагрузки считает нужным. Я не всегда «теряю состояние сеанса» на одном и том же этапе рабочего процесса, поэтому я считаю, что это связано с конфигурацией веб-фермы + состоянием сеанса сервера sql.
Оба приложения используют один и тот же машинный ключ для шифрования и дешифрования состояния сеанса, хранящегося на сервере sql.
Конфигурация на обоих серверах следующая:
<authentication mode="None" />
<sessionState mode="SQLServer" sqlConnectionString="{connection-string}" />
<machineKey decryptionKey="777CB456774AF02F7F1AC8570FAF31545B156354D9E2DAAD"
validationKey="89B5B536D5D17B8FE6A53CBB3CA8B8695289BA3DF0B1370BC47D362D375CF91525DDB5307D8A288230DCD4B3931D23AED4E223955C45CFF2AF66BCC422EC7ECD" />
Я подтвердил, что это идентично на обоих серверах, что-то мне не хватает?
Этого не происходит в моей среде разработки, когда я использую один сервер.
Боюсь, я страдаю от пятничной хандры и, без сомнения, найду ответ на следующей неделе, к сожалению, я не хочу ждать!
Любые идеи?