可以将IIS设置为阻止API响应超过一定限制吗?

时间:2019-06-11 02:10:30

标签: c# asp.net iis api-gateway

我们有一个应用程序充当API网关,可以进行调用并将其路由到其他API,然后中继响应。

在我们的设置中,我们确保进行API调用的开发人员不要通过上传大量文件或发送过多的JSON有效负载来尝试淹没我们。现在,我们正在尝试弄清楚,如果它们进行的API调用返回的数据过多,我们如何确保不将其作为洪水泛滥。

是否有一种方法可以设置IIS或ASP.Net应用程序,以与拒绝特定大小的API请求相同的方式拒绝特定大小的API响应?

只需添加一个明确的示例:

如果开发者发出API请求以获取所有客户,则API网关会将请求传递给我们的内部客户API。如果客户API响应为600MB,则我们希望在API网关处阻止该响应,然后将响应发送给开发人员,要求他们更改其请求以减少结果集。

1 个答案:

答案 0 :(得分:0)

响应没有限制大小。我们可以通过在响应标头中添加更多参数Content-Length来限制响应大小。

要设置请求限制,您可以在web.config文件中设置

    <system.web>
<httpRuntime maxRequestLength="2147483647" />

 <system.webServer>
  <security>
    <requestFiltering>
      <requestLimits maxAllowedContentLength="2147483648" />
    </requestFiltering>
  </security>
</system.webServer>

您还可以在web.config中设置以下代码:

<configuration> 
   <system.web.extensions>
       <scripting>
           <webServices>
               <jsonSerialization maxJsonLength="50000000"/>
           </webServices>
       </scripting>
   </system.web.extensions>
</configuration> 

maxJsonLength配置JSON字符串的最大长度。

有关更多详细信息,请参阅: jsonSerialization Element (ASP.NET Settings Schema)

关于, 贾帕(Jalpa)