public override void SetAndReleaseItemExclusive(HttpContext context, string id, SessionStateStoreData item, object lockId, bool newItem) { byte[] buffer; long itemLength; int lockCookie = (lockId == null) ? 0 : (int)lockId; try { Serialization.Serialize(item, s_compressionEnabled, out buffer, out itemLength); } catch { if (!newItem) { // Release the exclusiveness of the existing item. ((SessionStateStoreProviderBase)this).ReleaseItemExclusive(context, id, lockId); } throw; } using (SqlStore store = GetStore()) { const bool initialized = true; store.ExecuteInsertOrUpdateItem(id, TimeSpan.FromMinutes(item.Timeout), lockCookie, newItem, initialized, buffer, itemLength); } }
public override void CreateUninitializedItem(HttpContext context, string id, int timeout) { byte[] buffer; long itemLength; SessionStateStoreData item = CreateNewStoreData(context, timeout); Serialization.Serialize(item, s_compressionEnabled, out buffer, out itemLength); using (SqlStore store = GetStore()) { const bool newItem = true; const bool initialized = false; store.ExecuteInsertOrUpdateItem(id, TimeSpan.FromMinutes(item.Timeout), 0, newItem, initialized, buffer, itemLength); } }