ASP.Net Web API调用大数据

时间:2012-07-17 12:52:40

标签: asp.net iis-7 compression

我们有一个API调用,其中在请求中发送了大量数据(平均16 MB)。请求数据每次都不同,因此缓存现在很好。由于接收数据的客户可能会使用其他技术,例如PHP,这些技术的默认大小不同。

当数据大小超过默认数量(PHP 8MB)时,我们考虑尽可能使用压缩。

可以这样做吗?

从最初的研究(可能不正确)压缩用于IIS使用缓存的网站内容,所以不确定我们的问题是否可以通过压缩来解决。

2 个答案:

答案 0 :(得分:0)

您可以使用dynamic content compression

压缩与IIS上的缓存无关。

虽然这会缩小尺寸,但根据您的数据(图片或视频可能),它可能无法将其压缩到8MB以下。您应该考虑允许您的客户端以块的形式请求数据。

Enable chunk transfer encoding on IIS

您的php客户端可以使用支持块编码的客户端(如guzzle

)接收此数据
  

请求和响应的实体主体本质上是PHP流   在Guzzle。请求的主体可以是字符串或PHP   使用转换为Guzzle \ Http \ EntityBody对象的流   它的工厂方法。使用字符串时,实体主体存储在   一个临时的PHP流。使用临时PHP流有助于保护您的   应用程序从发送或接收大量内存时耗尽内存   消息中的实体主体

答案 1 :(得分:0)

默认值为4MB,将其提升:

<configuration>
    <system.web>
        <httpRuntime maxRequestLength="1048576" />
    </system.web>
</configuration>

 <!--IIS 7-->
 <system.webServer>
   <security>
      <requestFiltering>
         <requestLimits maxAllowedContentLength="1048576" />
      </requestFiltering>
   </security>
 </system.webServer>