public void Init(HttpApplication context)
{
context.AcquireRequestState +=new EventHandler(context_AcquireRequestState);
}private void context_AcquireRequestState(object sender, EventArgs e)
{
string path=System.IO .Path .GetFileName( System.Web .HttpContext .Current .Request.FilePath)  ;
System.Web .HttpContext .Current .Response .Write (System.Web .HttpContext .Current.Session .Count .ToString ());
}在context_AcquireRequestState方法中,Session的count总是0,无法访问Session中的某一项,
也就是说Session["item"]总是null.
怎么访问Session呢?或者用其他的事件?

解决方案 »

  1.   

    可以使用PreRequestHandlerExecute(完成请求之前)和PostRequestHandlerExcute(完成请求之后)事件。代码类似下面这段:
    public void Init(HttpApplication app){
      app.PreRequestHandlerExecute += new EventHandler(context_PreRequestHandlerExecute);
      app.PostRequestHandlerExecute += new EventHandler(context_PostRequestHandlerExecute);
    }private void context_PreRequestHandlerExecute(object sender, EventArgs e) {
      HttpContext ctx = HttpContext.Current;
      HttpSessionState session = ctx.Session;
      // 接下来可以处理Session对象
    }private void context_PostRequestHandlerExecute(object sender, EventArgs e){
    HttpContext ctx = HttpContext.Current;
      HttpSessionState session = ctx.Session;
      // 接下来可以处理Session对象
    }