我是否使用Web服务或HttpHandler来提供图像?

非常简单的问题..服务图像更好的是web.net服务或asp.net c#中的HttpHandler?

有什么不同 ? 为什么我更喜欢一个而不是另一个?

谢谢

我会选择HttpHandler。 它更有效,因为它不通过正常的页面请求管道,并且是您有权访问请求的最早点。 Phil Haack有一个很棒的样板模板 。

我建议使用HttpHandler,因为它可以有效地传输二进制数据。 Web服务会

  • 强制您在发送之前将整个文件加载到内存中
  • base64encode你的文件(=> + 30%大小)

这是处理程序的c#代码:

public class ImageHandler : IHttpHandler { public bool IsReusable { get { return true; } } //your handler will need somehing like http://sofzh.miximages.com/c%23/Image.ashxfile=toto.png //(humm I suggest you to put adamantite++ validations here :p) public void ProcessRequest(HttpContext context) { string fileName = context.Request.QueryString["file"]; context.Response.WriteFile(fileName); } } 

这是您需要添加的配置:

  ...   
		      	

当然,IHttpHandler是要走的路。 监守..

  1. HttpHandler请求的带宽成本较低,因为请求 – 响应不像Web服务那样使用XML进行修饰。

  2. Web服务用于完全不同的上下文,如公开SOA应用程序的端点。 所以网络服务真的不是你的目标的主要候选人。

你可以使用你提供的任何一个,我会使用一个处理程序,因为它更适合我对这种类型的请求。

Web服务更多的是出现一系列操作以供第三方使用,您选择以特定方式公开内容(可能是为了满足某种授权行为),在这些情况下,您添加了额外的逻辑处理请求,即您以自定义方式处理请求,因此我会使用处理程序。