Poiché l'azienda deve bilanciare il carico del server, il progetto web ne distribuisce uno su ciascuno dei due server front-end (web1 e web2). Ma le sessioni vengono usate nei progetti. Quando atterri per la prima volta su web1, è possibile saltare da web1 a web2 perché il carico può aumentare dopo web1. Ho trovato molte informazioni su Internet, e capisco anche la configurazione di web.config <sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" timeout="30" cookieless="AutoDetect" /> Molti esempi su Internet sono stateConnectionString="tcpip=127.0.0.1:42424", che ovviamente va bene su un server web, ma quando si cambia stateConnectionString in stateConnectionString="tcpip=192.168.1.82: 42424", ci saranno problemi con entrambi i frontend. Microsoft non ha fornito una soluzione specifica, e gli esempi su MSDN indicano anche la 127.0.0.1. Successivamente, dopo aver fatto ricerche e consultato esperti, ho capito che dovevo modificare il registro del server che salva Sessin, qui è 192.168.1.82, e la modifica è la seguente: Modifica il registro:
HKEY_LOCAL_MACHINE"SYSTEM"CurrentControlSet"Servizi"aspnet_state"Parametri
AlhelmRemoteConnection=1
Poi riavviare il Servizio Statale ASP.NET
La configurazione della connessione è la seguente:
<sessionState mode="StateServer" stateConnectionString="tcpip=192.168.1.200:42424" cookieless="AutoDetect" timeout="60" />
Dopo di che, dopo i test, è andata bene. Spero che possa aiutare anche altri. C'è un altro problema che ancora non capisco. La pagina wap che ho creato avrà i dati memorizzati nello ViewState sulla pagina e, quando la pagina viene aggiornata costantemente, i dati al suo interno si perderanno e il tempo non supererà mai i 20 minuti. Non so se sia un bug di Microsoft o altro, questo problema non appare sulle pagine web. Soluzione. Dopo un periodo di esplorazione, è meglio usare meno viewstate nella pagina WAP e, se il servizio di stato asp.net è abilitato, è meglio impostare cookieless su true, altrimenti la sessione andrà persa. |