繁体   English   中英

带有大数据的ASP.Net Web API调用

[英]ASP.Net web API call with large data

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

由于数据大小超出默认数量(PHP 8MB),因此我们考虑尽可能使用压缩。

能做到吗?

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

您可以使用动态内容压缩

压缩与IIS上的缓存无关。

虽然这会减小大小,但取决于您的数据(可能是图像或视频),但可能无法将其压缩到8MB以下。 您应该考虑允许您的客户分批请求数据。

在IIS上启用块传输编码

您的php客户端可以使用支持块编码(例如guzzle)的客户端接收此数据

请求和响应的实体本身就是Guzzle中的PHP流。 请求的主体可以是字符串,也可以是PHP流,可以使用其工厂方法转换为Guzzle \\ Http \\ EntityBody对象。 使用字符串时,实体主体存储在临时PHP流中。 在邮件中发送或接收大型实体时,使用临时PHP流有助于保护您的应用程序免于内存不足

默认值为4MB,请提高它:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM