1

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

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

我想知道处理请求的最佳配置是什么,我应该从 HttpModule 重新映射到 HandlerFactory,在那里我解析 url,并根据该 url 路由到适当的处理程序,还是应该尝试将其全部设置网络配置?

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

4

1 回答 1

1

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

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

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

return thePage;
于 2009-07-23T22:27:36.423 回答