public UpdateSession ( string id, int timeout, BsonBinaryData sessionItems, string applicationName, int sessionItemsCount, object lockId ) : void | ||
id | string | |
timeout | int | |
sessionItems | BsonBinaryData | |
applicationName | string | |
sessionItemsCount | int | |
lockId | object | |
리턴 | void |
public override void SetAndReleaseItemExclusive(HttpContext context, string id, SessionStateStoreData item, object lockId, bool newItem) { try { byte[] serializedItems = Serialize((SessionStateItemCollection)item.Items); Binary sessionItems = new Binary(serializedItems); if (newItem) { // Delete an existing expired session if it exists. sessionStore.EvictExpiredSession(id, _applicationName); // insert new session item. Session session = new Session(id, this._applicationName, item.Timeout, sessionItems, item.Items.Count, 0); sessionStore.Insert(session); } else { sessionStore.UpdateSession(id, item.Timeout, sessionItems, this._applicationName, item.Items.Count, lockId); } } catch (MongoConnectionException e) { if (WriteExceptionsToEventLog) { WriteToEventLog(e, "SetAndReleaseItemExclusive"); throw new ProviderException(e.Message, e.InnerException); } else { throw e; } } }
public void TestUpdates() { SessionStateItemCollection items = new SessionStateItemCollection(); items["Val1"] = "value"; byte[] serializedItems = Serialize(items); Binary b = new Binary(serializedItems); List<string> ids = new List<string>(); ICursor allSessions; using (var mongo = new Mongo(config)) { mongo.Connect(); allSessions = mongo["session_store"]["sessions"].FindAll(); foreach (Document session in allSessions.Documents) { string id = (string)session["SessionId"]; ids.Add(id); } } foreach (string s in ids) { var sessionStore = new SessionStore("test"); sessionStore.UpdateSession(s, 2, b, "AppName", items.Count, 0); } }