Programmering

Hvordan jobbe med økter i ASP.Net

HTTP er en statsløs protokoll. Dette innebærer at hver gang en ny forespørsel sendes fra klienten til serveren, går statusinformasjonen til den forrige forespørselen tapt. Det er flere måter å lagre og administrere tilstanden i ASP.Net. Sessionsobjekt er en av dem, de andre er Cache- og Application-objekter.

Caching forbedrer applikasjonens ytelse ved å minimere ressursforbruket i systemet ditt. Du kan lagre ofte brukte data eller websider for å forbedre applikasjonens ytelse og gjennomstrømning og skalerbarhet ved å redusere forbruket av serverens ressurser.

Du kan definere økt som en økt med tilkobling mellom serveren og klienten - øktobjektet inneholder data som tilsvarer en brukers økt. Session er en administrasjonsteknikk på serversiden som brukes til å lagre brukerspesifikk informasjon i minnet for senere henting.

Modus for lagring av øktdata

Øktobjektet opprettes og administreres på serversiden. Sessionslagringsmodus bestemmer hvor øktdataene dine skal lagres. Øktetilstand kan lagres i en av følgende moduser:

  1. I prosess: Lagret i samme ASP.Net-prosess
  2. Statsserver: Lagret i et annet system
  3. SQL Server: Lagret i SQLServer-databasen
  4. Tilpasset: dette lar deg lagre øktdata ved hjelp av en tilpasset lagringsleverandør

In-Proc-modus for lagring av øktdata er standardmodus, og den er også den raskeste av alle tilgjengelige lagringsmodi. I denne modusen lagres øktdataene i serverens minne - inne i ASP.Net-arbeidsprosessen. Du bør bruke denne modusen hvis datamengden som må lagres i økten er mindre, og hvis du ikke trenger at dataene skal vedvares. Det skal bemerkes at øktdata lagret i denne modusen er ustabile, dvs. så snart økten er avsluttet, går sesjonsdataene tapt. Så data i økten er tilgjengelig så lenge økten er i live.

I tilstandsserver-modus lagres sesjonsdataene i en egen prosess - dette kalles ASP.Net State Service. Med andre ord, sesjonsdata i denne modusen lagres utenfor ASP.Net-arbeidsprosessen eller applikasjonsbassenget i IIS. I motsetning til In-Proc-modus bevares øktdata i tilstandsservermodus, dvs. de går ikke tapt etter at webapplikasjonen din har startet på nytt.

Følgende kodebit illustrerer hvordan du kan konfigurere økttilstand i applikasjonen din til å bli lagret i denne modusen.

 

   

stateConnectionString = "tcpip = Server: 1234"

cookieless = "false"

timeout = "20" />

 

SQLServer-modus for lagring av øktdata brukes til å vedvare øktdata for applikasjonen din i SQLServer-databasen. I likhet med tilstandsservermodus for lagring av sesjonsdata, gjør SQLServer-modus deg også i stand til å vedvare øktdata for applikasjonen din på tvers av applikasjonen på nytt. Vær oppmerksom på at du bør sørge for at ASP.Net-sesjonsstatusdatabasen blir opprettet før du bruker denne modusen. Du kan opprette denne databasen ved hjelp av kommandolinjeprogrammet Aspnet_regsql.exe.

Følgende kodebit viser hvordan du kan konfigurere applikasjonen din til å lagre øktdata i en SQLServer-database.

 

   

sqlConnectionString = "datakilde = server; bruker-id = joydip; passord = sa1 @ 3"

cookieless = "false" timeout = "20" />

 

Støtte for øktkomprimering av økt

Microsofts ASP.Net 4 introduserte en ny funksjon: session state compression. Med ASP.Net 4 og fremover kan du utnytte denne innebygde funksjonen til å komprimere øktdata for lagring av økter utenom prosessen. For å dra nytte av denne funksjonen er alt du trenger å gjøre å sette komprimeringsaktivert attributt til "sant" i konfigurasjonsfilen til applikasjonen. Følgende kodebit illustrerer hvordan dette kan konfigureres.

<>

mode = "SQLServer"

stateConnectionString = "noen tilkoblingsstrenger ..."

compressionEnabled = "true" />

Sesjonstilstand lar deg lagre brukerspesifikke data i minnet og identifisere en bestemt forespørsel unikt. Sesjonsdata lagres som nøkkel- / verdipar i SessionStateItemCollection og kan nås ved hjelp av egenskapen HttpContext.Session.

Følgende kodeeksempler viser hvordan du kan lagre og hente øktdata.

HttpSessionState.Session ["UserName"] = "John"; // lagrer øktdata

streng str = HttpSessionState.Session ["Brukernavn"]. ToString ();

// Henter øktdata

HttpSessionState.Remove ("Nøkkel å fjerne");

// Fjerner et objekt fra økttilstanden

$config[zx-auto] not found$config[zx-overlay] not found