2014-02-24 1 views
1

특정 순간에 세션 크기를 검사해야합니다. 나는 어떻게 이것을 얻을 수 있습니까?Asp.Net WebForms 세션 크기를 검사하는 방법

나는 엿볼에서 사용자 지정 탭을 만들려고하지만, 세션 객체는 항상 널에 있습니다

public override object GetData(Glimpse.Core.Extensibility.ITabContext context) 
{ 
    var result = new List<string[]> { new[] { "Object", "Number of bytes" } }; 

    HttpContextBase context1 = context.GetHttpContext(); 
    HttpSessionStateBase session = context1.Session; 

    if (session != null) 
    { 
     long totalSessionBytes = 0; 
     BinaryFormatter b = new BinaryFormatter(); 
     MemoryStream m; 
     foreach (var obj in session) 
     { 
      m = new MemoryStream(); 
      b.Serialize(m, obj); 
      result.Add(new[] { obj.ToString(), m.Length.ToString() }); 
      totalSessionBytes += m.Length; 
     } 

     result.Add(new[] { "Total", totalSessionBytes.ToString() }); 
    } 
    else 
    { 
     result.Add(new[] { "Session", "Null" }); 
    } 
    return result; 
} 

나는이 시도 :

https://github.com/jasonrclark/Glimpse/commit/89416a7e7934d98a02839fc7976a288ca18f6d60

을하지만 찾을 수 없습니다 모든 IGlimpsePlugin 인터페이스

답변

0

당신이 당신의 탭을 구현하는 방법에 따라 구현

  • Glimpse.Core.Extensibility.ITab
  • Glimpse.Core.Extensibility.TabBase, Glimpse.Core.Extensibility.TabBase<T> 또는 Glimpse.AspNet.Extensibility.AspNetTab에서 상속

당신이 구현 있는지 확인해야합니다 /되도록 RuntimeEvent ExecuteOn 속성을 재정의 그것은 RuntimeEvent.BeginSessionAccess 또는 RuntimeEvent.EndSessionAccess

에서 실행됩니다.

기본적으로 세션 액세스에 너무 늦은 RuntimeEvent.EndRequest입니다.

+0

감사합니다! RuntimeEvent를 재정의하는 ExecuteOn 속성이 솔루션입니다. –