10

我有一个 Webhandler,它在我的 asp.net 项目中根据请求生成图像。但是如果用户直接访问资源,则不会触发 Global.asax 文件中的 session start Event。但在我的项目中,我需要触发会话开始事件。我怎样才能做到这一点?

 void Session_Start(object sender, EventArgs e) 
    {
        Session["Test"] = 1;

    }
4

2 回答 2

7

Session_Start每当某些服务器端处理程序尝试读取或写入会话时,都会触发该事件。IRequiresSessionState您可以尝试使用标记界面装饰您的处理程序:

public class MyHandler: IHttpHandler, IRequiresSessionState
{
    ...
}
于 2013-04-22T06:11:07.683 回答
3

你总是可以创建一个方法Session_Start并调用它

namespace WebFormsApplication1
{
    public class Global : HttpApplication
    {
        void Session_Start(object sender, EventArgs e) 
        {
            Global.StartSession();
        }
    }

    public static class Global 
    {
        public static void StartSession() {

            Session["Test"] = 1;
        }
    }
}

在您的处理程序中,只需调用Global.StartSession();

于 2013-04-22T06:14:19.310 回答