Ker mora podjetje uravnotežiti obremenitev strežnika, spletni projekt namesti enega na vsak od dveh strežnikov (web1 in web2). A seje se uporabljajo v projektih. Ko prvič pristaneš na web1, je mogoče preskočiti iz web1 v web2, ker se obremenitev lahko poveča po web1. Našel sem veliko informacij na internetu in tudi razumem konfiguracijo v web.config <sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" timeout="30" cookieless="AutoDetect" /> Veliko primerov na internetu je stateConnectionString="tcpip=127.0.0.1:42424", kar je seveda v redu na spletnem strežniku, vendar ko spremenite stateConnectionString v stateConnectionString="tcpip=192.168.1.82: 42424", se pojavijo težave z obema frontendoma. Microsoft ni ponudil specifične rešitve, primeri na MSDN pa prav tako kažejo na 127.0.0.1. Kasneje sem po raziskovanju in posvetovanju s strokovnjaki ugotovil, da moram spremeniti register strežnika, ki shranjuje Sessin, tukaj je 192.168.1.82, sprememba pa je naslednja: Spremenite register:
HKEY_LOCAL_MACHINE"SISTEM"Trenutni kontrolni set"Storitve"aspnet_state"Parametri
AllowRemoteConnection=1
Nato ponovno zaženi ASP.NET državno službo
Konfiguracija povezave je naslednja:
<sessionState mode="StateServer" stateConnectionString="tcpip=192.168.1.200:42424" cookieless="AutoDetect" timeout="60" />
Po tem je bilo po testiranju v redu. Upam, da bo to pomagalo drugim. Obstaja še en problem, ki ga še vedno ne razumem. Na wap strani, ki sem jo ustvaril, bodo podatki shranjeni v ViewState na strani, in ko se stran nenehno osvežuje, se podatki v njej izgubijo, čas pa nikoli ne preseže 20 minut. Ne vem, ali gre za napako pri Microsoftu ali kaj drugega, ta težava se ne pojavlja na spletnih straneh. Rešitev. Po obdobju raziskovanja je najbolje uporabiti manj stanja pogleda na strani WAP, in če je storitev asp.net state omogočena, je najbolje nastaviti cookieless na true, sicer bo seja izgubljena. |