HttpHandlers和HttpHandlerFactories

时间:2009-07-23 22:24:02

标签: c# request httphandler

我想路由不同资源的传入请求,一些返回文件(如css),其他返回服务器生成的响应,其他人被重定向到aspx页面以获取AJAX功能。

当前配置使用HttpModule将所有请求重新映射到一个处理程序,其中解析和分派URL作为服务器的入口点。

我想知道处理请求的最佳配置是什么,我应该从HttpModule重新映射到HandlerFactory,我解析url,并根据该url路由到适当的处理程序,或者我应该尝试设置它全部在web.config?

另外,如何将请求从HttpHandler和HttpHandlerFactory路由到aspx页面?

1 个答案:

答案 0 :(得分:1)

如果将请求路由到各种处理程序的规则非常简单(例如“.ext转到处理程序xyz”),你肯定应该使用内置的.NET机制和web.config - 这里没有理由重新发明轮子。如果逻辑可能更复杂或者不仅仅处理扩展映射,那么模块也是合适的。

其次,您应该使用HttpHandlerFactory,因为工厂可以返回IHttpHandlers,而ASPX页 是IHttpHandler。因此,如果您使用自定义工厂,如果您的逻辑确定它应该“路由”到ASPX页面,您可以直接从工厂return an instance of the page

IHttpHandler thePage = PageParser.GetCompiledPageInstance(
    requestPath,
    pathToAspxFile,
    httpContext);

return thePage;
相关问题