/// <summary>
        /// 创建未初始化的项
        /// </summary>
        /// <param name="context"></param>
        /// <param name="id"></param>
        /// <param name="timeout"></param>
        public void CreateUninitializedItem(System.Web.HttpContext context, string id, int timeout)
        {
            var session = new MongoDBSessionDo()
            {
                ApplicationName = "",
                SessionId       = id,
                Created         = DateTime.Now,
                Expired         = DateTime.Now.AddMinutes(sessionStateSection.Timeout.TotalMinutes),
                LockDate        = DateTime.Now,
                LockId          = 0,
                Locked          = false,
                Flags           = (Int32)SessionStateActions.InitializeItem,
                TimeOut         = timeout
            };

            collection.Save(session);
        }
        /// <summary>
        /// 设置并释放项
        /// </summary>
        /// <param name="context"></param>
        /// <param name="id"></param>
        /// <param name="item"></param>
        /// <param name="lockId"></param>
        /// <param name="newItem"></param>
        public void SetAndReleaseItem(System.Web.HttpContext context, string id, SessionStateStoreData item, object lockId, bool newItem)
        {
            MongoDBSessionDo session;

            if (newItem)
            {
                //删除过期的会话信息
                collection.Remove(Query.And(Query.EQ("_id", id), Query.LT("Expired", DateTime.Now)));

                //插入新的会话信息
                session = new MongoDBSessionDo()
                {
                    SessionId   = id,
                    Created     = DateTime.Now,
                    Expired     = DateTime.Now.AddMinutes(sessionStateSection.Timeout.TotalMinutes),
                    LockDate    = DateTime.Now,
                    LockId      = 0,
                    Locked      = false,
                    TimeOut     = item.Timeout,
                    SessionItem = Serialize((SessionStateItemCollection)item.Items),
                    Flags       = (Int32)SessionStateActions.None
                };
                collection.Save(session);
            }
            else
            {
                //更新会话信息
                var query = Query.And(Query.EQ("_id", id), Query.EQ("LockId", (Int32)lockId));
                session             = collection.FindOne(query);
                session.Expired     = DateTime.Now.AddMinutes(item.Timeout);
                session.SessionItem = Serialize((SessionStateItemCollection)item.Items);
                session.Locked      = false;
                var update = Update.Set("Expired", DateTime.Now.AddMinutes(item.Timeout))
                             .Set("SessionItem", Serialize((SessionStateItemCollection)item.Items))
                             .Set("Locked", false);

                collection.Update(query, update);
            }
        }