【问题标题】:Difference between ASP.net Handler and Generic HandlerASP.net Handler 和 Generic Handler 的区别
【发布时间】:2013-01-29 00:19:43
【问题描述】:

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

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

这两者有什么区别,什么时候用?

【问题讨论】:

标签: c# asp.net .net


【解决方案1】:

通用处理程序

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

HTTP 处理程序

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

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

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

要了解更多信息,请参阅link

【讨论】:

  • 这个答案可以通过更清楚地回答问题的最后一部分来增强。我自己虽然不知道答案。我认为 ashx 在浏览器地址栏中看起来过时了。但是 ASP.NET 处理程序可以映射到更现代的 url,但设置起来更复杂。根据我目前的知识,我咳了出来,所以我很高兴被证明是错误的。
  • 您可以使用通用处理程序进行路由。您可以使用 IHttpHandler 创建一个类(只是一个 cs 文件,不需要 ashx 文件),然后使用此答案干净地路由:stackoverflow.com/a/3380249/887092
【解决方案2】:
  • ASP.Net 处理程序是所有 ASP.Net 页面的默认 HTTP 处理程序。
  • 通用处理程序是所有 Web 处理程序的默认 HTTP 处理程序 没有包含 @WebHandler 指令的 UI。

欲了解更多信息,请参阅MSDN

【讨论】:

  • 我认为这是错误的。通用处理程序是一个特定的端点(以 ashx 结尾)而不是所有其他请求的回退默认值或管道侦听器。我也相信 ASP.Net Handler 在这个答案中也是错误的,请参阅下面@coder 的答案,这是我对它们的更多理解。
猜你喜欢
  • 1970-01-01
  • 2021-09-20
  • 1970-01-01
  • 2020-06-18
  • 2014-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-22
相关资源
最近更新 更多