Přehled kapitol
HttpSessionState
S cookie či bez cookie
Způsoby ukládání stavu relace
Statistika testů
K této kapitole
Zodpovězených: 0
Správně: 0
Špatně: 0
Úspěšnost: 0%
Nezodpovězených: 0

Pro testování a jeho statistické vyhodnocení je nutné se přihlásit.


Celkem
Zodpovězených: 0
Správně: 0
Špatně: 0
Úspěšnost: 0%
Nezodpovězených: 0

Způsoby ukládání stavu relace
RNDr. Dušan Kovář, Ph.D.
3. ledna 2007
Počet návštěv: 4714

Stav relace může být ukládán třemi způsoby:

  • v procesu (in-process session-state mode) - stav se ukládá přímo do procesu ASP.NET, což je aspnet_wp.exe.
    Výhody: nejrychlejší zpracování
    Nevýhody: nejmenší robustnost - při restartování služby IIS stavy relací nenávratně mizí; aplikace musí běžet na jediném serveru

    Vlastní nastavení této konfigurace lze provést pro celý server (výchozí konfigurace) v souboru machine.config nebo pro webovou aplikaci (nebo její část) v souboru web.config takto:
    <sessionState
       mode
    ="Inproc"
       cookieless
    ="false"
       timeout
    ="20"/>
    </sessionState>
  • na stavovém serveru (state server mode) - stav se ukládá do samostatného procesu aspnet_state.exe na stejném nebo jiném počítači.
    Výhody: při restartu IIS nedojde ke ztrátě relačního stavu; je možné používat webové farmy
    Nevýhody: výrazně pomalejší zpracování, neboť se musí překonávat hranice procesu

    Vlastní nastavení této konfigurace lze provést pro celý server (výchozí konfigurace) v souboru machine.config nebo pro webovou aplikaci (nebo její část) v souboru web.config takto:
    <sessionState
       mode
    ="StateServer"
       stateConnectionString
    ="tcpip=dataserver:42424"
       cookieless
    ="false"
       timeout
    ="20"/>
    </sessionState>
    Pro lokální server bude adresa (místo dataserver) localhost nebo 127.0.0.1. Standardně služba používá port 42424, lze jej však změnit v registru pomocí regedit.exe:


    Pro ukládání stavu relace na stavovém serveru je potřeba spustit Stavovou službu ASP.NET (tj. aspnet_state.exe). To lze učinit následovně:
    • z příkazového řádku:
      C:\>net start aspnet_state
      Spouštění služby Stavová služba ASP.NET.
      Služba Stavová služba ASP.NET byla úspěšně spuštěna.
      
    • užitím ovládacích panelů - Ovládací panely - Nástroje pro správu - Služby :

  • na serveru SQL (SQL server mode) - stav se ukládá v databázi nástroje MS SQL
    Výhody: rychlé zpracování
    Nevýhody: vysoká robustnost - při restartování služby IIS zůstanou stavy relací zachovány; aplikace může běžet na webových farmách

    Vlastní nastavení této konfigurace lze provést pro celý server (výchozí konfigurace) v souboru machine.config nebo pro webovou aplikaci (nebo její část) v souboru web.config takto:
    <sessionState
       mode
    ="SQLServer"
       sqlConnectionString
    =" Integrated Security=SSPI;data source=dataserver;"
       cookieless
    ="false"
       timeout
    ="20"/>
    </sessionState>
    Databázi pro ukládání stavu relace vytvoříme na SQL serveru pomocí tohoto skriptu InstallSqlState.sql nebo InstallPersistSqlState.sql, které jsou uloženy v složce systemroot\Microsoft.NET\Framework\versionNumber. Oba skripty vytvoří databázi ASPState s několika uloženými procedurami. První skript však umisťuje tabulky do dočasné databáze, druhý přímo do persistentní databáze ASPState. Skript lze spustit použitím utility osql nebo Query Analyzer na SQL Serveru.

V této kapitole věnujeme příklad třetí konfiguraci. Upravte příklad z předcházejících kapitol (s hlavní a vedlejší stránkou) tak, že bude ukládat stav relací na SQL serveru. Pak po spuštění dostanete následující okno:

Tento stav je uložen jako záznam v tabulce ASPStateTempSessions SQL Serveru:



Hodnocení kapitoly "Způsoby ukládání stavu relace"
Oslovila vás tato kapitola?
Ohodnoťte její obsah počtem bodů od 1 (nejhorší) do 10 (nejlepší):
Zatím nikdo nehodnotil. Buďte první.
Diskuze ke kapitole "Způsoby ukládání stavu relace"

Napadá vás zajímavá otázka související s touto kapitolou?

Přidejte do diskuze


Vyhledávání
Programovací jazyk C# | Programování Windows Forms | Architektura .NET | ASP.NET | Dodatky | Diskuze
RNDr. Dušan Kovář, Ph.D.
Gymnázium Olomouc-Hejčín