Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET应用程序传递图像的最佳方式:使用httphandler或静态资源_Asp.net_Iis - Fatal编程技术网

ASP.NET应用程序传递图像的最佳方式:使用httphandler或静态资源

ASP.NET应用程序传递图像的最佳方式:使用httphandler或静态资源,asp.net,iis,Asp.net,Iis,在我们的web服务器上,我们希望提供可以在HTML元素中使用的URL,用于显示用户配置文件图片 我可以通过两种方式做到这一点: 将图像作为静态资源放在web服务器上:mysite.com/user1.jpg 实现一个IHttpHandler:mysite.com/images?userid=1 一种方法比另一种方法有什么好处吗?不通过ASP.NET处理图像,而是让IIS将其作为静态内容处理,并完全绕过ASP.NET管道将是最快的 实现一个HttpHandler,除了需要代码之外,还需要涉及A

在我们的web服务器上,我们希望提供可以在HTML元素中使用的URL,用于显示用户配置文件图片

我可以通过两种方式做到这一点:

  • 将图像作为静态资源放在web服务器上:mysite.com/user1.jpg
  • 实现一个IHttpHandler:mysite.com/images?userid=1

一种方法比另一种方法有什么好处吗?

不通过ASP.NET处理图像,而是让IIS将其作为静态内容处理,并完全绕过ASP.NET管道将是最快的

实现一个
HttpHandler
,除了需要代码之外,还需要涉及ASP.NET管道——这需要服务器提供更多资源


基本上,如果内容是静态的,就让它是静态的,然后让IIS处理它。

虽然允许IIS处理图像会更容易,但这取决于您是否希望在发送文件时压缩它们


某些版本的IIS支持GZIP压缩,这意味着您可以在IIS为其服务时压缩文件,但旧版本的IIS可能不支持,这意味着您需要压缩文件时,必须使用HTTPHandler或类似工具来压缩和服务它们。

让IIS来处理它们。从处理程序提供图像可能会占用大量资源。 除非绝对必要,否则不要那样做

如果您的站点有很多图像,这意味着需要Asp.net处理许多额外的请求。
Asp.net每次请求所需的资源比IIS推出静态文件所需的资源多得多。

回答得好-Oded的速度稍快,因此他被标记为“正确”。我们使用的是IIS 7.5,但这是一个很好的观点。IIS是否足够聪明,只在调用浏览器能够处理它时才进行压缩?在这种情况下,我认为您应该自然地为它们服务,并实现GZIP压缩。这将加快速度并减少带宽;)