Programovanie

Ako pracovať s reláciami v ASP.Net

HTTP je protokol bez štátnej príslušnosti. To znamená, že pri každom zaslaní novej požiadavky z klienta na server sa stratia informácie o stave predchádzajúcej požiadavky. Existuje niekoľko spôsobov, ako uložiť a spravovať stav v ASP.Net. Objekt relácie je jedným z nich, ostatnými sú objekty ukladania do medzipamäte a aplikácie.

Ukladanie do medzipamäte zlepšuje výkon aplikácie minimalizáciou spotreby zdrojov vo vašom systéme. Môžete ukladať často používané údaje alebo webové stránky, aby ste zlepšili výkon a priepustnosť a škálovateľnosť aplikácie znížením spotreby zdrojov servera.

Reláciu môžete definovať ako reláciu pripojenia medzi serverom a klientom - objekt relácie obsahuje údaje, ktoré zodpovedajú relácii používateľa. Relácia je technika správy stavu na strane servera, ktorá sa používa na ukladanie špecifických informácií používateľa do pamäte na neskoršie načítanie.

Režimy ukladania údajov relácie

Objekt relácie sa vytvára a spravuje na strane servera. Režim ukladania relácie určuje, kam by sa mali ukladať údaje o relácii. Stav relácie je možné uložiť v jednom z nasledujúcich režimov:

  1. V priebehu: Uložené v rovnakom procese ASP.Net
  2. Stavový server: Uložený v inom systéme
  3. SQL Server: Uložený v databáze SQLServer
  4. Vlastné: toto vám umožňuje ukladať údaje relácie pomocou vlastného poskytovateľa úložiska

Režim In-Proc ukladania údajov o relácii je predvoleným režimom a je tiež najrýchlejší zo všetkých dostupných režimov ukladania. V tomto režime sú údaje o relácii uložené v pamäti servera - v pracovnom procese ASP.Net. Tento režim by ste mali použiť, ak je množstvo údajov, ktoré je potrebné v relácii uložiť, a ak nepotrebujete trvalé údaje. Je potrebné poznamenať, že dáta relácie uložené v tomto režime sú nestále, to znamená, že akonáhle je relácia ukončená, dáta relácie sa stratia. Dáta v relácii sú teda k dispozícii, pokiaľ je relácia aktívna.

V režime štátneho servera sú údaje relácie uložené v samostatnom procese - tento stav sa nazýva ASP.Net State Service. Inými slovami, údaje o relácii v tomto režime sa ukladajú mimo pracovného procesu ASP.Net alebo fondu aplikácií v IIS. Na rozdiel od režimu In-Proc sa údaje relácie v režime štátneho servera zachovajú, t. J. Po reštartovaní webovej aplikácie sa nestratia.

Nasledujúci úryvok kódu ilustruje, ako môžete nakonfigurovať stav relácie vo svojej aplikácii na ukladanie v tomto režime.

 

   

stateConnectionString = "tcpip = Server: 1234"

cookieless = "false"

časový limit = "20" />

 

Režim SQLServer ukladacieho priestoru údajov relácie sa používa na uchovanie údajov relácie vašej aplikácie v databáze SQLServer. Podobne ako v režime štátneho servera pre ukladanie údajov o relácii, režim SQLServer vám tiež umožňuje uchovať údaje o relácii vašej aplikácie pri reštartoch aplikácie. Pred použitím tohto režimu by ste sa mali ubezpečiť, že je vytvorená databáza stavu relácie ASP.Net. Túto databázu môžete vytvoriť pomocou pomôcky príkazového riadku Aspnet_regsql.exe.

Nasledujúci úryvok kódu ukazuje, ako môžete nakonfigurovať svoju aplikáciu na ukladanie údajov relácie do databázy SQLServer.

 

   

sqlConnectionString = "zdroj údajov = server; ID užívateľa = joydip; heslo = sa1 @ 3"

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

 

Podpora kompresie údajov relácie

Microsoft ASP.Net 4 predstavil novú funkciu: kompresiu stavu relácie. S programom ASP.Net 4 a novším môžete túto vstavanú funkciu využiť na kompresiu údajov relácie na ukladanie relácií mimo procesu. Ak chcete využiť túto funkciu, musíte v konfiguračnom súbore aplikácie nastaviť atribút compressEnabled na hodnotu „true“. Nasledujúci úryvok kódu ilustruje, ako je možné toto nakonfigurovať.

<>

mode = "SQLServer"

stateConnectionString = "nejaký pripojovací reťazec ..."

compressionEnabled = "true" />

Stav relácie vám umožňuje ukladať do pamäte špecifické údaje používateľa a jedinečne identifikovať konkrétnu požiadavku. Údaje o relácii sú uložené ako páry kľúč / hodnota v SessionStateItemCollection a je možné k nim pristupovať pomocou vlastnosti HttpContext.Session.

Nasledujúce príklady kódu ukazujú, ako môžete ukladať a načítať údaje relácie.

HttpSessionState.Session ["UserName"] = "John"; // ukladá údaje o relácii

string str = HttpSessionState.Session ["UserName"]. ToString ();

// Načíta údaje o relácii

HttpSessionState.Remove ("Kľúč na odstránenie");

// Odstráni objekt zo stavu relácie

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