我在IIS 6下运行。
我有一个处理特定文件扩展名请求的HttpHandler(让我们调用扩展名.foo)。
Global.asax.cs中的我的Application_BeginRequest处理程序执行我不想要响应.foo请求而发生的操作。
我知道在Application_BeginRequest处理程序中我可以有条件地执行基于HttpContext.Current.Path(或类似的东西)的操作但是我宁愿不要将Global.asax.cs文件的逻辑与其不应该的细节混淆需要了解。
我希望.foo文件的HttpHandler总是跳过Application_BeginRequest处理程序。
谢谢!
答案 0 :(得分:3)
我不认为这是可能的。在IIS甚至知道哪个HTTPHandler将处理请求之前,会触发Application_BeginRequest事件。
Global.asax构造有点过时了。你实际上得到的是与自定义HttpModule相同的东西......根据定义,所有请求必须通过所有已注册的模块。既然如此,我认为将逻辑添加到BeginRequest处理程序中只能有条件地执行。但也许您真正想要做的是将此逻辑移至自定义HttpModule?或者多个模块......然后代码和逻辑就不那么“混乱”了。