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