Keďže spoločnosť potrebuje vyvážiť záťaž servera, webový projekt nasadí jeden na každý z dvoch front-end serverov (web1 a web2). Ale sedenia sa používajú v projektoch. Keď prvýkrát prídete na web1, je možné preskočiť z web1 na web2, pretože záťaž sa môže po web1 zvýšiť. Našiel som veľa informácií z internetu a tiež rozumiem konfigurácii vo web.config <sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" timeout="30" cookieless="AutoDetect" /> Mnohé príklady na internete sú stateConnectionString="tcpip=127.0.0.1:42424", čo je samozrejme v poriadku na webovom serveri, ale keď zmeníte stateConnectionString na stateConnectionString="tcpip=192.168.1.82: 42424", vyskytnú sa problémy s oboma frontendmi. Microsoft neposkytol konkrétne riešenie a príklady na MSDN tiež ukazujú na 127.0.0.1. Neskôr, po výskume a konzultácii s odborníkmi, som si uvedomil, že musím upraviť register servera, ktorý ukladá Sessin, tu je 192.168.1.82 a úprava je nasledovná: Upravte register:
HKEY_LOCAL_MACHINE"SYSTEM"CurrentControlSet"Services"aspnet_state"Parameters
AllowRemoteConnection=1
Potom reštartuj ASP.NET štátnu službu
Konfigurácia spojenia je nasledovná:
<sessionState mode="StateServer" stateConnectionString="tcpip=192.168.1.200:42424" cookieless="AutoDetect" timeout="60" />
Potom to bolo po testovaní v poriadku. Dúfam, že to pomôže aj ostatným. Je tu ešte jeden problém, ktorému stále nerozumiem. Stránka wap, ktorú som vytvoril, bude mať dáta uložené v ViewState na stránke, a keď sa stránka neustále obnovuje, dáta v nej sa stratia a čas nikdy neprekročí 20 minút. Neviem, či je to chyba od Microsoftu alebo čo, tento problém sa na webových stránkach neobjavuje. Riešenie. Po určitom období skúmania je najlepšie použiť menej viewstate na stránke WAP a ak je služba asp.net state povolená, je najlepšie nastaviť cookieless na true, inak sa relácia stratí. |