SessionStateStoreProviderBase.GetItemExclusive Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vrátí data o stavu relace jen pro čtení z úložiště dat relace.
public:
abstract System::Web::SessionState::SessionStateStoreData ^ GetItemExclusive(System::Web::HttpContext ^ context, System::String ^ id, [Runtime::InteropServices::Out] bool % locked, [Runtime::InteropServices::Out] TimeSpan % lockAge, [Runtime::InteropServices::Out] System::Object ^ % lockId, [Runtime::InteropServices::Out] System::Web::SessionState::SessionStateActions % actions);
public abstract System.Web.SessionState.SessionStateStoreData GetItemExclusive (System.Web.HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out System.Web.SessionState.SessionStateActions actions);
abstract member GetItemExclusive : System.Web.HttpContext * string * bool * TimeSpan * obj * SessionStateActions -> System.Web.SessionState.SessionStateStoreData
Public MustOverride Function GetItemExclusive (context As HttpContext, id As String, ByRef locked As Boolean, ByRef lockAge As TimeSpan, ByRef lockId As Object, ByRef actions As SessionStateActions) As SessionStateStoreData
Parametry
- context
- HttpContext
Pro HttpContext aktuální požadavek.
- locked
- Boolean
Když tato metoda vrátí, obsahuje logickou hodnotu, která je nastavena na true
, pokud je zámek úspěšně získán; jinak false
.
- lockAge
- TimeSpan
Když tato metoda vrátí, obsahuje TimeSpan objekt nastavený na dobu, po kterou byla položka v úložišti dat relace uzamčena.
- lockId
- Object
Když tato metoda vrátí, obsahuje objekt, který je nastaven na identifikátor zámku pro aktuální požadavek. Podrobnosti o identifikátoru zámku najdete v části "Uzamčení Session-Store dat" v souhrnu SessionStateStoreProviderBase třídy.
- actions
- SessionStateActions
Když tato metoda vrátí, obsahuje jednu z SessionStateActions hodnot, které označují, zda je aktuální relace neinicializovaná relace bez souborů cookie.
Návraty
Naplněný SessionStateStoreData hodnotami relace a informacemi z úložiště dat relace.
Příklady
Příklad implementace zprostředkovatele úložiště stavu relace najdete v tématu Implementace poskytovatele úložiště Session-State.
Poznámky
Objekt SessionStateModule volá metodu GetItemExclusive na začátku požadavku během AcquireRequestState události, když EnableSessionState je atribut nastavený na true
, což je výchozí hodnota. EnableSessionState Pokud je atribut nastaven na ReadOnly
, SessionStateModule objekt místo toho volá metodu GetItem .
Metoda GetItemExclusive vrátí SessionStateStoreData objekt naplněný informacemi o relaci z úložiště dat, aktualizuje datum vypršení platnosti uložených dat a uzamkne data položky relace v úložišti dat po dobu trvání požadavku. Pokud se v úložišti dat nenajdou žádná data položky relace, GetItemExclusive metoda nastaví locked
out
parametr na false
a vrátí null
hodnotu . To způsobí, že SessionStateModule objekt zavolá metodu CreateNewStoreData k vytvoření nové položky relace v úložišti dat. Pokud se data položky relace nacházejí v úložišti dat, ale jsou uzamčená, GetItemExclusive metoda nastavíout
locked
parametr na true
, nastaví lockAge
out
parametr na aktuální datum a čas minus datum a čas, kdy byla položka uzamčena (které se načte z úložiště dat), nastaví lockId
out
parametr na identifikátor zámku načtený z úložiště dat. a vrátí null
. To způsobí, že SessionStateModule objekt zavolá metodu GetItemExclusive znovu po půlsekundovém intervalu, aby se pokusil načíst informace o položce relace a získat zámek dat. Pokud hodnota, na kterou lockAge
out
je parametr nastaven, překračuje ExecutionTimeout hodnotu, SessionStateModule zavolá metodu ReleaseItemExclusive pro vymazání zámku dat položky relace a pak znovu zavolá metodu GetItemExclusive .
Parametr se actionFlags
používá, když cookieless
jsou atributy a regenerateExpiredSessionId
nastavené na true
hodnotu . Hodnota nastavená actionFlags
na InitializeItem označuje, že položka v úložišti dat relace je nová relace, která vyžaduje inicializaci. Neinicializované položky v úložišti dat relace jsou vytvořeny voláním CreateUninitializedItem metody . Pokud položka z úložiště dat relace není neinicializovaná, actionFlags
parametr se nastaví na nulu.
Implementátory vlastního úložiště stavu relací, které podporují relace bez souborů cookie, by měly nastavit actionFlags
out
parametr na hodnotu vrácenou z úložiště dat relace pro aktuální položku. Pokud se hodnota parametru actionFlags
požadované položky úložiště relací rovná InitializeItem hodnotě výčtu, GetItemExclusive pak by metoda měla nastavit hodnotu v úložišti dat na nulu po nastavení parametru actionFlags
out
.
Platí pro
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro