Тъй като компанията трябва да балансира натоварването на сървъра, уеб проектът внедрява по един на всеки от двата фронтенд сървъра (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", което разбира се е добре на уеб сървър, но когато промените състояниеConnectionString на stateConnectionString="tcpip=192.168.1.82: 42424", ще има проблеми и с двата фронтенда. Microsoft не предостави конкретно решение, а примерите в MSDN също сочат към 127.0.0.1. По-късно, след проучване и консултация с експерти, осъзнах, че трябва да променя регистъра на сървъра, който запазва Sessin, тук е 192.168.1.82, а модификацията е следната: Променете регистъра:
HKEY_LOCAL_MACHINE"SYSTEM"CurrentControlSet"Услуги"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 състояние е активирана, най-добре е да се зададе cookieless на true, иначе сесията ще бъде загубена. |