Оскільки компанія має балансувати навантаження на сервер, веб-проєкт розгортає по одному на кожному з двох фронтенд-серверів (web1 і web2). Але сесії використовуються у проєктах. Коли ви вперше потрапляєте на web1, можна переходити з web1 на web2, оскільки навантаження може зрости після web1. Я знайшов багато інформації в Інтернеті, і також розумію конфігурацію у web.config <sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" timeout="30" cookieless="AutoDetect" /> Багато прикладів в Інтернеті — stateConnectionString="tcpip=127.0.0.1:42424", що, звісно, нормально працює на веб-сервері, але коли ви змінюєте stateConnectionString на stateConnectionString="tcpip=192.168.1.82: 42424", виникають проблеми з обома фронтендами. Microsoft не надала конкретного рішення, а приклади на MSDN також вказують на 127.0.0.1. Пізніше, після дослідження та консультації з експертами, я зрозумів, що потрібно змінити реєстр сервера, який зберігає Sessin, ось він 192.168.1.82, і модифікація така: Модифікувати реєстр:
HKEY_LOCAL_MACHINE"SYSTEM"CurrentControlSet"Services"aspnet_state"Параметри
AllowRemoteConnection=1
Потім перезапустіть ASP.NET Державну службу
Конфігурація з'єднання така:
<sessionState mode="StateServer" stateConnectionString="tcpip=192.168.1.200:42424" cookieless="AutoDetect" тайм-аут="60" />
Після цього все було нормально після тестування. Сподіваюся, це допоможе іншим. Є ще одна проблема, яку я досі не розумію. Сторінка wap, яку я створив, зберігатиме дані у ViewState на сторінці, і коли сторінка постійно оновлюється, дані на ній губляться, і час ніколи не перевищуватиме 20 хвилин. Я не знаю, чи це баг від Microsoft, чи щось інше, ця проблема не відображається на веб-сторінках. Рішення. Після періоду дослідження найкраще використовувати менше viewstate на сторінці WAP, і якщо сервіс asp.net state увімкнений, то краще встановити cookieless на true, інакше сесія буде втрачена. |