【发布时间】:2010-12-13 20:53:05
【问题描述】:
对你来说非常简单的问题.. 在 asp.net c# 中提供图像更好是 Web 服务还是 HttpHandler?
有什么区别? 为什么我应该更喜欢一个而不是另一个?
谢谢
【问题讨论】:
标签: c# asp.net web-services httphandler
对你来说非常简单的问题.. 在 asp.net c# 中提供图像更好是 Web 服务还是 HttpHandler?
有什么区别? 为什么我应该更喜欢一个而不是另一个?
谢谢
【问题讨论】:
标签: c# asp.net web-services httphandler
我会选择 HttpHandler。它更高效,因为它不通过正常的页面请求管道,并且是您可以访问请求的最早点。 Phil Haack 有一个great boilerplate template。
【讨论】:
我建议使用 HttpHandler,因为它可以有效地传输二进制数据。 Web 服务将
这是处理程序的 c# 代码:
public class ImageHandler : IHttpHandler
{
public bool IsReusable
{
get { return true; }
}
//your handler will need somehing like http://xxxxx/Image.ashx?file=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);
}
}
这是您需要添加的配置:
<configuration>
...
<system.webServer>
<handlers>
<add name="MyImages" verb="*" path="Image.ashx" type="MyApp.ImageHandler, MyApp/>
希望对你有所帮助。
【讨论】:
当然 IHttpHandler 是要走的路。因为..
HttpHandler 请求的带宽成本较低,因为请求-响应不像 Web 服务那样使用 XML 修饰。
Web 服务在完全不同的环境中使用,例如为 SOA 应用程序公开端点。因此,Web 服务确实不是您目标的主要候选者。
【讨论】:
您可以使用任何一种,根据您提供的内容,我会使用处理程序,因为我认为它更适合这种类型的请求。
Web 服务更多的是呈现一系列供第三方使用的操作,您选择以特定方式公开内容(可能是为了满足某种授权行为),在这些情况下,您会被添加额外的如何处理请求的逻辑,即您正在以自定义方式处理请求,因此我会使用处理程序。
【讨论】: