Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 19080|Svar: 3

[ASP.NET] ASP.NET StateServer som lagrar sessionen

[Kopiera länk]
Publicerad på 2017-11-18 21:20:15 | | | |

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.




Föregående:Enkel paketrefaktorering för Autofac Container
Nästa:Sessions-tillstånd kan inte serialiseras. I "StateServer" eller "SQLServer"-läge...
 Hyresvärd| Publicerad på 2017-11-18 21:21:34 |
ASP.NET sessionstillståndsmodul <Sessionstate>bestämmer de fyra möjliga värdena för taggen i Web.config-filen < lägeegenskapen för taggen under System.web>taggen: Off, Inproc StateServer och SQLserver.    1 Inproc är standardinställningen
Det tillåter "cookie-lösa" sessioner, samt lagring av sessionsdata utanför servern. ASP.NET sessionstillståndsmodul konfigureras i Web.config-filen enligt följande:
 Hyresvärd| Publicerad på 2018-02-26 11:02:52 |
Min egen konfiguration


 Hyresvärd| Publicerad på 2022-07-10 21:58:32 |
ASP.NET 4 erbjuder nu inbyggt stöd för att komprimera sessionsdata för att lagra sessioner utanför processen. För att aktivera denna funktion, sätt helt enkelt inkomprimeringAktiveradEgenskapen sätts till "true", som visas i följande kodutsnitt:



ASP.NET kommer att använda .NET Framework System.IO.Compression.GZipStream-klassen för att komprimera (och dekomprimera) sessionstillståndet.
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com