Skip to main content

Posts

Showing posts with the label session

Detecting Session Timeouts

Durata de viata a unei sesiune se poate seta din fisierul de configurare. Valoarea minima pe care o poate avea este 1 minut: <sessionState   mode = " InProc "   timeout = "1" / > Cand setati durata de viata la sesiune trebuie sa avegi grija ca IIS, by default face recyle la AppPool odata la 120 de minute. Ambele valori trebuie modificate daca doriti ca durata de viata a sesiunii sa fie mai mare. Dintr-o aplicatie ASP.NET, folosid metoda Session_End din Global.asax nu o sa puteti prinde mereu acest eveniment. Pentru mai multe detalii: http://vunvulearadu.blogspot.com/2011/11/when-sessionend-is-called.html. Pentru a putea detecta daca o sesiune este noua putem sa verificam valoarea propietatii Session.IsNewSession.Aceasta propietate este TRUE cand sesiune este noua. Folosit aceasta propietate pe ASP.NET MVC3 ne putem declara un action filter prin intermediul caruia sa detectam daca sesiunea a expirat. public   class   Sessi1onExpireFilterAttribute ...

When Session_End is called

Intr-o aplicatie web, avem doua metode in Global.asax.cs care se apeleaza in momentul in care o sesiune este creata sau cand aceasta se termina: Session_Start Session_End Daca Session_Start este apelat cand o sesiune este create, trebuie avut grija cu Session_End . Exista cateva cazuri cand aceasta metoda nu este apelata: Este apelata doar daca sesiune este “InProc”. Daca tinem sesiune in AppFabric Cache sau pe SQL Server atunci Session_End nu o sa fie apelat. Cand userul inchide browerul. Din cauza ca protocol HTTP este stateless, nu aveti cum sa detectati acest eveniment by default. In functie de brower acest eveniment se poate detecta, dar nu va face trigger la Session_End by default. Daca in sesiune nu aveti nici o informatie atunci metoda Session_End nu o sa fie apelata. Aceasta metoda este apelata de catre un worker processor. Din aceasta cauza pe thread-ul respective nu o sa aveti acces la toate resursele, chiar daca in Session_Start le-ati avut pe toate. De ...

Session on Azure AppFabric Cache

Într-un post anterior am prezentat pe scurt API la Azure AppFabric. http://vunvulearadu.blogspot.com/2011/07/azure-appfabric-cache-api.html Dupa cum ştim, în momentul în care punem aplicaţie web pe cloud, noţiunea de sesiune nu mai exista din cauza ca nu ştim dacă o sa ajungem la aceiaşi instanta a unui server intre doua apeluri succesive. Pentru a putea rezolva aceasta problema putem sa folosim Azure AppFabric. Dupa ce configuram Azure AppFabric trebuie sa adaugăm în web.config următoarea secţiune: <system.web> <compilation debug="true" targetFramework="4.0"> </compilation> <sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider" compressionEnabled="false"> <providers> <add name="AppFabricCacheSessionStoreProvider" type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" ...