Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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);
            }
        }