我有一个Webhandler,可以在我的asp.net项目中根据请求生成图像。但是,如果用户直接访问资源,它将不会触发Global.asax文件中的会话启动事件。但在我的项目中,我需要触发会话启动事件。我怎样才能做到这一点?
void Session_Start(object sender, EventArgs e)
{
Session["Test"] = 1;
}
答案 0 :(得分:7)
只要某个服务器端处理程序尝试读取或写入会话,就会触发Session_Start
事件。您可以尝试使用IRequiresSessionState
标记界面来装饰处理程序:
public class MyHandler: IHttpHandler, IRequiresSessionState
{
...
}
答案 1 :(得分: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();