在ASP.NET中,HTTPHandler可以跳过Global.asax.cs Application_BeginRequest处理程序吗?

时间:2009-10-19 15:59:56

标签: asp.net httphandler

我在IIS 6下运行。

我有一个处理特定文件扩展名请求的HttpHandler(让我们调用扩展名.foo)。

Global.asax.cs中的我的Application_BeginRequest处理程序执行我想要响应.foo请求而发生的操作。

我知道在Application_BeginRequest处理程序中我可以有条件地执行基于HttpContext.Current.Path(或类似的东西)的操作但是我宁愿不要将Global.asax.cs文件的逻辑与其不应该的细节混淆需要了解。

我希望.foo文件的HttpHandler总是跳过Application_BeginRequest处理程序。

谢谢!

1 个答案:

答案 0 :(得分:3)

我不认为这是可能的。在IIS甚至知道哪个HTTPHandler将处理请求之前,会触发Application_BeginRequest事件。

Global.asax构造有点过时了。你实际上得到的是与自定义HttpModule相同的东西......根据定义,所有请求必须通过所有已注册的模块。既然如此,我认为将逻辑添加到BeginRequest处理程序中只能有条件地执行。但也许您真正想要做的是将此逻辑移至自定义HttpModule?或者多个模块......然后代码和逻辑就不那么“混乱”了。