Eftersom företaget behöver lastbalansera servern distribuerar webbprojektet en server på vardera av de två frontend-servrarna (web1 och web2). Men sessioner används i projekt. När du först landar på web1 är det möjligt att hoppa från web1 till web2 eftersom belastningen kan öka efter web1. Jag hittade mycket information på internet, och jag förstår också konfigurationen i web.config <sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" timeout="30" cookieless="AutoDetect" /> Många exempel på Internet är stateConnectionString="tcpip=127.0.0.1:42424", vilket förstås fungerar på en webbserver, men när du ändrar stateConnectionString till stateConnectionString="tcpip=192.168.1.82: 42424" uppstår problem med båda frontendarna. Microsoft gav ingen specifik lösning, och exemplen på MSDN pekar också på 127.0.0.1. Senare, efter att ha forskat och konsulterat experter, insåg jag att jag var tvungen att ändra registret för servern som sparar Sessin, här är det 192.168.1.82, och modifieringen är följande: Ändra registret:
HKEY_LOCAL_MACHINE"SYSTEM"CurrentControlSet"Services"aspnet_state"Parametrar
AllowRemoteConnection=1
Sedan återstarter ASP.NET State Service
Anslutningskonfigurationen är följande:
<sessionState mode="StateServer" stateConnectionString="tcpip=192.168.1.200:42424" cookieless="AutoDetect" timeout="60" />
Efter det var det okej efter testerna. Hoppas det hjälper andra. Det finns ett annat problem som jag fortfarande inte förstår. Wap-sidan jag gjorde kommer att ha data lagrad i ViewState på sidan, och när sidan ständigt uppdateras kommer datan i den att gå förlorad, och tiden kommer aldrig att överstiga 20 minuter. Jag vet inte om det är en bugg från Microsoft eller vad, det här problemet dyker inte upp på webbsidor. Lösning. Efter en period av utforskande är det bäst att använda mindre viewstate på WAP-sidan, och om asp.net state-tjänsten är aktiverad är det bäst att sätta cookieless till true, annars förloras sessionen. |