Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 19080|Svar: 3

[ASP.NET] ASP.NET StateServer, der gemmer sessionen

[Kopier link]
Opslået på 18/11/2017 21.20.15 | | | |

Da virksomheden skal loadbalancere serveren, implementerer webprojektet én på hver af de to front-end servere (web1 og web2). Men sessioner bruges i projekter. Når du først lander på web1, er det muligt at hoppe fra web1 til web2, fordi belastningen kan stige efter web1.
Jeg fandt en masse information på internettet, og jeg forstår også konfigurationen i web.config
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" timeout="30" cookieless="AutoDetect" />
Mange eksempler på internettet er stateConnectionString="tcpip=127.0.0.1:42424", hvilket selvfølgelig er fint på en webserver, men når du ændrer stateConnectionString til stateConnectionString="tcpip=192.168.1.82: 42424", vil der opstå problemer med begge frontends. Microsoft gav ikke en specifik løsning, og eksemplerne på MSDN peger også på 127.0.0.1. Senere, efter at have undersøgt og konsulteret eksperter, indså jeg, at jeg var nødt til at ændre registreringsdatabasen for serveren, der gemmer Sessin; her er den 192.168.1.82, og ændringen er som følger:
Ændr registreringsdatabasen:

HKEY_LOCAL_MACHINE"SYSTEM"CurrentControlSet"Services"aspnet_state"Parametre



AllowRemoteConnection=1



Genstart derefter ASP.NET State Service



Forbindelseskonfigurationen er som følger:

<sessionState mode="StateServer"
stateConnectionString="tcpip=192.168.1.200:42424" cookieless="AutoDetect"
timeout="60" />

Efter det var det okay efter testen. Håber det hjælper andre.
Der er et andet problem, som jeg stadig ikke forstår. WAP-siden, jeg lavede, vil have dataene gemt i ViewState på siden, og når siden konstant opdateres, vil dataene i den gå tabt, og tiden vil aldrig overstige 20 minutter. Jeg ved ikke, om det er en fejl fra Microsoft eller hvad, dette problem optræder ikke på websider. Løsning.
Efter en periode med udforskning er det bedst at bruge mindre viewstate på WAP-siden, og hvis asp.net state-tjenesten er aktiveret, er det bedst at sætte cookieless til true, ellers går sessionen tabt.




Tidligere:Simpel pakkerefaktorering for Autofac Container
Næste:Sessionstilstande kan ikke serialiseres. I "StateServer" eller "SQLServer"-tilstand...
 Udlejer| Opslået på 18/11/2017 21.21.34 |
ASP.NET sessionstilstandsmodul <Sessionstate>bestemmer de fire mulige værdier af tagget i Web.config-filen < tilstandegenskaben for tagget under System.web> taget: Off, Inproc StateServer og SQLserver.    1 Inproc er standardindstillingen
Det tillader "cookieløse" sessioner samt lagring af sessionsdata uden for serveren. ASP.NET sessionstilstandsmodul konfigureres i Web.config-filen som følger:
 Udlejer| Opslået på 26/02/2018 11.02.52 |
Min egen konfiguration


 Udlejer| Opslået på 10/07/2022 21.58.32 |
ASP.NET 4 tilbyder nu indbygget understøttelse af komprimering af sessionsdata for at gemme sessioner, der ikke er i processen. For at aktivere denne funktion skal du blot sættekomprimeringAktiveretEgenskaben sættes til "sand", som vist i følgende kodeudsnit:



ASP.NET vil bruge .NET Framework System.IO.Compression.GZipStream-klassen til at komprimere (og dekomprimere) sessionstilstanden.
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com