对你来说非常简单的问题.. 在asp.net c#?
中提供服务图像是更好的Web服务或HttpHandler有什么区别? 为什么我更喜欢一个而不是另一个?
感谢
答案 0 :(得分:8)
我会选择HttpHandler。它更有效,因为它不通过正常的页面请求管道,并且是您有权访问请求的最早点。 Phil Haack有great boilerplate template。
答案 1 :(得分:1)
我建议使用HttpHandler,因为它可以有效地传输二进制数据。网络服务
这是处理程序的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/>
我希望这对你有所帮助。
答案 2 :(得分:1)
当然,IHttpHandler是要走的路。监守..
HttpHandler请求的带宽成本较低,因为请求 - 响应不像Web服务那样使用XML进行修饰。
Webservices用于完全不同的上下文,例如公开SOA应用程序的端点。因此,网络服务实际上不是您的目标的主要候选者。
答案 3 :(得分:0)
你可以使用你所提供的任何一种,我会使用一个处理程序,因为它更适合我对这种类型的请求。
Web服务更多的是出现一系列操作以供第三方使用,您选择以特定方式公开内容(可能是为了满足某种授权行为),在这些情况下,您需要额外添加处理请求的逻辑,即你是以自定义的方式处理请求,因此我会使用处理程序。