题 ASP.net Handler和Generic Handler之间的区别


当我们在Visual Studio 2010中向ASP.NET Web应用程序项目添加新项时,我注意到了两个模板:

  1. ASP.NET处理程序
  2. 通用处理程序

这两者之间的区别是什么?它们何时使用?


12
2018-02-13 12:40


起源


stackoverflow.com/questions/2451882/... - Pratik


答案:


通用处理程序

Generic Handler是一个默认的处理程序,它将具有@webhandler指令并且具有.ashx扩展名,这个通用处理程序没有UI,但是当对此处理程序发出任何请求时它会提供响应。

HTTP处理程序

HTTP处理程序是一个运行并继续服务器请求并根据请求处理代码给出响应的进程。此处理程序没有UI,需要在web.config中针对扩展进行配置。 Http Handler的一个很好的例子是ASP.NET的页面处理程序,它提供.aspx页面请求。

主要区别 通用 和 HTTP处理程序 是

通用处理程序有一个处理程序,可以通过扩展名为.ashx的url访问,而http处理程序需要在web.config中配置为web.config中的扩展名。它没有任何扩展名。通用处理程序的典型示例是创建缩略图图像和http处理程序页面处理程序,它提供.aspx扩展请求并给出响应。

要了解更多信息,请参阅此 链接


16
2018-02-13 12:59



@Bart现在好吗? - coder
我更喜欢这个答案更完整...... - RokumDev
@RokumDev不,这个答案其实是正确的。 - Todd
通过更清楚地回答问题的最后部分,可以增强这个答案。我自己并不是真的知道答案。我认为ashx在浏览器地址栏中看起来过时了。但ASP.NET处理程序可以映射到更现代的URL,但更多涉及设置。我从目前的知识中咳出来,所以我很高兴被证明是错的。 - Todd
您可以使用Generic Handler进行路由。您可以使用IHttpHandler创建一个类(只是一个cs文件,不需要ashx文件),然后使用以下答案干净地路由: stackoverflow.com/a/3380249/887092 - Todd


  • ASP.Net处理程序 是所有ASP.Net页面的默认HTTP处理程序。
  • 通用处理程序 是所有Web处理程序的默认HTTP处理程序 没有UI,包括@WebHandler指令。

有关更多信息,请参阅 MSDN


5
2018-02-13 12:49



我认为那是错的。 Generic Handler是一个特定的端点(以ashx结尾),而不是所有其他请求的回退默认端口或管道侦听器。我也相信ASP.Net Handler在这个答案中也是错误的,请参阅下面的@code的答案,这是我对它们的理解。 - Todd