如何为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();