httphander和httpmodule之间的区别

时间:2015-11-19 06:37:20

标签: c# httphandler httpmodule

我想弄清楚httphandler和httpmodule之间的区别。

在下面提到的文章中说

CodeProject

  

我们的应用程序需要URL重写和HTTPHandler是一个糟糕的解决方案,永远不应该用于此。

这让我很困惑。

这是什么意思?它显示了如何使用httpmodule重写URL。

  1. 那么,如果我使用httphandler来重写URL呢?
  2. 它有什么缺点?
  3. 在哪种情况下,我可以使用httphandler?
  4. 它说httphandler用于处理MIME类型。因此,对于这种情况,不会发生同样的问题(在Post back中)?
  5. reference

    有人可以分享一些何时有效使用httphandler和httpmodule的实时示例?

2 个答案:

答案 0 :(得分:1)

将HttpHandler视为"终点" ASP.NET中的请求管道。如果你想处理以" .ext"结尾的文件请求。那么你就可以对HttpHandler做出反应,然后回答所需的一切。

虽然HttpModule本身就是请求管道,但如果您需要在请求或响应期间修改某些内容,请在HttpModule中进行修改,因此Url重写将属于该类别

答案 1 :(得分:1)

  

那么,如果我使用httphandler来重写URL呢?

然后你重新发明了轮子。我不相信有任何理由重写URL Rewrite模块。

  

它有什么缺点?

我非常确定HttpHandler无法完成网址重写的所有内容,也无法进行单元测试,也无法使用全球数百万人。

  

在哪种情况下我可以使用httphandler?

如果您需要编写遗留代码。 Modules implement the IHttpModule interface, which is defined in System.Web, and that library is not part of the new ASP.NET

  

它说httphandler用于处理MIME类型。因此,对于这种情况,不会发生同样的问题(在Post back中)?

否则这确实是问题HTTP handler vs HTTP module的副本,那里的答案确实是最好的答案。