Bestämma hur sessioner ska lagras

Html är ett envägsprotokoll och kan inte hålla reda på från vilken webbläsaren ett anrop kommit från. När man programmerar dynamiska webbplatser är det ofta av stor vikt att man vet vilken användare som surfar på sidan vid ett visst tillfälle. För att hålla reda på dessa sessioner, som de kallas, finns det tre sätt att använda sig av i Asp.Net:
  • In Process (InProc)
  • State Server
  • SQL Server

In Process är det snabbaste och innebär att sessionerna lagras i arbetsprocessen "aspnet_wp.exe". Det har sina nackdelar eftersom alla sessioner försvinner om man startar om applikationen.

SQL Server är den säkraste metoden men kräver att man har en licens för SQL Server.

Vid State Server lagras sessionerna i en speciell process dedikerad till endast detta. Processen heter "aspnet_state.exe" och "aspnet_wp.exe" kommunicerar sedan med denna för att hämta och spara sessionsobjekten. Detta är en något långsammare metod än "In Process" men har sina fördelar i och med att applikationen kan startas om utan att man förlorar sessionosbjekten. Passar även bra vid webbfarmar där många servrar kan dela på samma lagringsplats för sessionerna.

För att ställa in en applikation för "State Server" anger man följande i web.config filen.

. . . mode="StateServer"
stateConnectionString="tcpip=127.0.0.1:42424"
cookieless="false"
timeout="20" />

Ska flera servrar dela på samma State Server så måste man fylla i serveradressen istället för 127.0.0.1. Se även till att servicen "ASP.NET State Service" är igång på servern och inställd på automatisk uppstart.