C# 减少导致错误的.AspNet.Cookies(会话)的大小

C# 减少导致错误的.AspNet.Cookies(会话)的大小,c#,asp.net,asp.net-mvc,cookies,session-cookies,C#,Asp.net,Asp.net Mvc,Cookies,Session Cookies,目前,在web应用程序上,我正在使用会话存储不同部分之间共享的一些值 例如Session[“PREFERENCES”]=newpreferencesbusiness()。GetBy HttpContext.Current.Session[“SETTINGS”]=someSettings.. 在本地环境中,会话大小约为3200字节 但对于我的一些客户来说,这似乎更大,导致cookie超过了浏览器限制并抛出错误 '分块的cookie不完整。在预期的2个块中仅找到0个“错误” 我目前正试图删除一些数据

目前,在web应用程序上,我正在使用会话存储不同部分之间共享的一些值 例如
Session[“PREFERENCES”]=newpreferencesbusiness()。GetBy

HttpContext.Current.Session[“SETTINGS”]=someSettings..

在本地环境中,会话大小约为3200字节 但对于我的一些客户来说,这似乎更大,导致cookie超过了浏览器限制并抛出错误 '分块的cookie不完整。在预期的2个块中仅找到0个“错误”

我目前正试图删除一些数据。我用它来测量某些部分占用了多少字节:

long totalSessionBytes = 0;
    System.Runtime.Serialization.Formatters.Binary.BinaryFormatter b = 
        new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
    System.IO.MemoryStream m;
    foreach (var key in Session)
    {
        var obj = Session[key];
        ms = new System.IO.MemoryStream();
        b.Serialize(ms, obj);
        totalSessionBytes += ms.Length;
    }
我找到了保存最多值的键(一个约9000字节,两个约3000字节) 没有将一些数据分配给那些仍然没有降低cookie大小的对象,所以我可能有错误的期望。 从这里引出的一些问题

  • 有没有对会话进行压缩,因为我的总数据应该接近17kb,而我的总数据是3kb(在浏览器中)
  • 我在这里遗漏了什么?我应该如何降低cookie并避免错误?

  • 会话数据不在cookie中,它可能在服务器内存或数据库中,具体取决于它的设置方式。您有另一个问题,可能是身份验证管理不当。