1

我正在研究识别将处理我的请求的处理程序。我想知道请求是否要求静态资源(即 css、js 或图像文件)。在检查 PreRequestHandlerExecute 事件上的 HttpContext.Request 后,我​​发现对于静态资源和任何其他自定义处理程序或 aspx 页面,处理程序和 currentHandler 变量为空,我有处理程序和 currentHandler 变量。

我的问题是:是否是处理请求的不同处理程序的好地方?我不想通过从 system.web/httpHandlers 获取处理程序文件扩展名来识别它,因为我不想只使用 system.web/httpHandlers system.webServer/handlers。而且我不想使用 Microsoft.Web.Administration 命名空间,因为这将使我修改所有服务器上的配置。

4

1 回答 1

1

忘了更新我是如何解决的。实际上,我确实在 PostMapRequestHandler 事件中将原生处理程序与自定义处理程序不同。如果您的请求将由本机处理程序处理,则 HttpContext.Request 的处理程序和 currentHandler 变量将为空。此外,通过将 runAllManagedModulesForAllRequests 设置为将由本机处理程序处理的错误请求,甚至希望引发 PostMapRequestHandler 事件。希望这可以帮助某人。

于 2013-04-26T13:16:21.437 回答