我是否使用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是要走的路。 监守..
-
HttpHandler请求的带宽成本较低,因为请求 – 响应不像Web服务那样使用XML进行修饰。
-
Web服务用于完全不同的上下文,如公开SOA应用程序的端点。 所以网络服务真的不是你的目标的主要候选人。
你可以使用你提供的任何一个,我会使用一个处理程序,因为它更适合我对这种类型的请求。
Web服务更多的是出现一系列操作以供第三方使用,您选择以特定方式公开内容(可能是为了满足某种授权行为),在这些情况下,您添加了额外的逻辑处理请求,即您以自定义方式处理请求,因此我会使用处理程序。