C# 我是使用web服务还是HttpHandler来提供图像?
对你来说这个问题很简单。。 在asp.net c#中使用web服务或HttpHandler更好地提供图像服务 有什么区别? 为什么我更喜欢一个而不是另一个C# 我是使用web服务还是HttpHandler来提供图像?,c#,asp.net,web-services,httphandler,C#,Asp.net,Web Services,Httphandler,对你来说这个问题很简单。。 在asp.net c#中使用web服务或HttpHandler更好地提供图像服务 有什么区别? 为什么我更喜欢一个而不是另一个 谢谢您可以使用任何一种,根据您提供的信息,我会使用处理程序,因为我认为它更适合这种类型的请求 Web服务更多的是为第三方提供一系列操作,您选择以特定方式公开内容(可能是为了满足某种授权行为),在这些情况下,您将为如何处理请求添加额外的逻辑,即,您以自定义方式处理请求,因此我将使用处理程序。您可以使用任何一种,根据您提供的,我将使用处理程序,因
谢谢您可以使用任何一种,根据您提供的信息,我会使用处理程序,因为我认为它更适合这种类型的请求
Web服务更多的是为第三方提供一系列操作,您选择以特定方式公开内容(可能是为了满足某种授权行为),在这些情况下,您将为如何处理请求添加额外的逻辑,即,您以自定义方式处理请求,因此我将使用处理程序。您可以使用任何一种,根据您提供的,我将使用处理程序,因为我认为它更适合此类请求
Web服务更多的是为第三方提供一系列操作,您选择以特定方式公开内容(可能是为了满足某种授权行为),在这些情况下,您将为请求的处理方式添加额外的逻辑,即您以自定义方式处理请求,因此我将使用处理程序。我将使用HttpHandler。它的效率更高,因为它不经过正常的页面请求管道,并且是您可以访问请求的最早点。Phil Haack有一个。我会选择一个HttpHandler。它的效率更高,因为它不经过正常的页面请求管道,并且是您可以访问请求的最早点。Phil Haack有一个.我建议使用HttpHandler,因为它可以高效地传输二进制数据。Web服务将
- 在发送之前,强制您将整个文件加载到内存中
- Base64对文件进行编码(=>+30%大小)
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/>
...
我建议使用HttpHandler,因为它可以高效地传输二进制数据。Web服务将
- 在发送之前,强制您将整个文件加载到内存中
- Base64对文件进行编码(=>+30%大小)
这是处理程序的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/>
...
当然,伊奇芬德勒是一条路要走。因为
HttpHandler请求的带宽成本较低,因为请求响应没有使用类似XML的web服务进行修饰
Web服务在完全不同的上下文中使用,比如为SOA应用程序公开端点。因此,Web服务并不是实现您的目标的最佳候选
当然,伊奇芬德勒是一条路要走。因为
HttpHandler请求的带宽成本较低,因为请求响应没有使用类似XML的web服务进行修饰
Web服务在完全不同的上下文中使用,比如为SOA应用程序公开端点。因此,Web服务并不是实现您的目标的最佳候选