【问题标题】:Global.asax vs IhttpHandler for webservice?用于 Web 服务的 Global.asax 与 IhttpHandler?
【发布时间】:2011-05-11 22:12:18
【问题描述】:

我目前正在使用自定义 IHttpHandler 类来解析请求并发送回响应。使用任何 global.asax 方法有什么好处吗?

【问题讨论】:

  • 哪些 global.asax 方法——它甚至不是一个类。 . .
  • 我在看 BeginRequest 方法。
  • 您想通过使用 Global.asax 实现什么?

标签: c# asp.net httphandler global-asax


【解决方案1】:

你到底想做什么?

IHttpHandler 在您想要精确控制 HTTP 请求/响应时很有用,但通常这是在您开发框架时 - 大多数情况下,相同的事情可以在其他地方实现。

IHttpHandler 当然不常用于 Web 服务,因为您应该考虑使用 WCF 或使用 ASP.Net web services(如果您的目标是 WCF 不可用的 .Net 2.0 框架)。使用专用的 Web 服务工具集可以更轻松地以一致的方式(通过 SOAP、JSON 等)公开您的服务

我不太确定 global.asax 是如何进入其中的 - global.asax 是……global。您在此处执行的任何操作都将应用于整个 Web 应用程序,因此您在此处执行的任何请求处理都将应用于到达您的应用程序的所有请求。这不是您应该实施网络服务的地方。

【讨论】:

  • 我最初尝试使用 WCF,但它的学习曲线太长,无法处理 POST'ed XML 请求,因此我使用了一个处理程序。我在帖子中的意思是,将 global.asax(或 httpmodules)用于 Web 服务的某些部分是否有任何性能优势,例如自定义身份验证和检查请求来源?有什么区别吗?
【解决方案2】:

如果您的意思是 HttpApplication events 与 IHttpHandler,它们并没有真正的可比性。

HttpApplication 事件通常从IHttpModules 用于(原则上)应用于所有 HTTP 请求的横切关注点。

This question解释IHttpModule和IHttpHandler的区别

【讨论】:

  • 相当不错的文章,但我仍然不完全理解将我的 web 服务的某些方面放在 httpmodule 中是否有任何优势。我在考虑性能。
  • @chobo:这里与性能无关。这就像问使用锤子还是螺丝刀哪个更快:它们是不同的工具,用于不同的事情。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-14
  • 1970-01-01
  • 2010-10-20
  • 2023-03-30
相关资源
最近更新 更多