Global.asax vs httpHandler用于Web服务?

时间:2011-05-11 22:12:19

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

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

2 个答案:

答案 0 :(得分:4)

你究竟想做什么?

IHttpHandler对于您希望对HTTP请求/响应进行精确控制非常有用,但通常情况下,这是在您开发框架时 - 大部分时间都可以在其他地方实现相同的目标。

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

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

答案 1 :(得分:1)

如果您的意思是HttpApplication events与IHttpHandler相比,那么它们并不具有可比性。

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

This question解释了IHttpModule和IHttpHandler之间的区别