会话StateServer反序列化异常

时间:2013-10-18 08:04:15

标签: c# asp.net

如何从会话中获取或删除无法反序列化的对象? (对象由另一个库存储在会话中,该库在运行时使用Assembly.LoadFrom方法加载)

我必须编写在每个请求上执行的方法 但我认为它是整个会话迭代的坏主意 是否有更好的方法从会话中删除不可反序列化的对象?

public void ResetSessionIfNeeded()
{
    if (Session.Mode == SessionStateMode.SQLServer || 
        Session.Mode == SessionStateMode.StateServer)
    {
        var index = 0;
        var count = Session.Count;
        while (index < count)
        {
            try
            {
                var tempObj = Session[index];
                index++;
            }
            catch (Exception)
            {
                Session.RemoveAt(index);
                count--;
            }
        }
    }
}

0 个答案:

没有答案