如何列出并确定应用程序缓存中存储的每个项目的大小(以字节/ KB为单位)

时间:2017-06-13 11:47:46

标签: c# .net asp.net-mvc webforms

需要列出asp.net Web表单应用程序的应用程序缓存中的项目以及每个项目的大小(以字节/ KB为单位)。

列出我在代码

后面使用的项目键
IDictionaryEnumerator enumerator = System.Web.HttpRuntime.Cache.GetEnumerator();
while (enumerator.MoveNext())
{
    chacheList.Add(new CacheDetails()
    {
        CacheKey = (string) enumerator.Key
    });
}

使用以下方法时,少数项目会发生错误。异常消息 - “未标记为可序列化。”

foreach (var item in chacheList)
{
    var cacheObject = Cache.Get(item.CacheKey);

    BinaryFormatter bf = new BinaryFormatter();
    MemoryStream ms = new MemoryStream();
    byte[] Array;
    bf.Serialize(ms, cacheObject);
    Array = ms.ToArray();
    var memsize = Array.Length;
    ..
    ..
}

如何克服上述问题?

0 个答案:

没有答案