我有一个Web API方法,它返回一个事件列表:
public HttpResponseMessage GetEvents()
{
...
}
我的服务使用DataContractSerializer(对于xml)和DataContractJsonSerializer(对于JSON)支持Xml和JSON响应。
响应大小可能像30MB。
IIS中托管的ASP.NET Web API中允许的默认响应大小是什么?
如何修改默认设置?
返回如此大的数据的最佳做法是什么(虽然它不是那么大)?
我应该压缩回复吗?
另外,我们每秒可能会收到一个请求。
由于
答案 0 :(得分:13)
我不确定你的问题。因为Response
没有限制大小。我们可以通过在响应头中添加更多参数Content-Length
来限制响应大小。所以我假设你有两个问题如下:
<强> 1。请求有限制:
要解决它,你应该增加请求大小,它可以收到大尺寸的响应。
要增加请求大小,请按以下方式添加web.config
:
<system.web>
<httpRuntime maxRequestLength="2147483647" />
<强> 2。您的响应缓冲区大小是限制异常:
请关注MSDN中的link。
修改强>
托管在ASP.NET Web API中的默认允许响应大小是多少? IIS?
响应大小将根据我们输入的消息大小自动获取大小。它对响应大小有限制。 HttpReponseMessage
实际上是我上面发布的回复。
返回如此大的数据的最佳做法是什么(尽管不是 那么大??
你应该link。处理数据的最佳实践是转换为二进制数据并将其转移为许多小部件。
我应该压缩回复吗?
取决于您的背景。 IIS 7.0已经允许您配置zip响应,但在客户端已经支持zip响应时要小心你的代码。
答案 1 :(得分:7)
在web.config中尝试此代码 它解决了我的问题
<configuration>
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="50000000"/>
</webServices>
</scripting>
</system.web.extensions>
</configuration>