The*_*ght 14 c# asp.net iis asp.net-mvc asp.net-web-api
我有一个Web API方法,它返回一个事件列表:
public HttpResponseMessage GetEvents()
{
...
}
Run Code Online (Sandbox Code Playgroud)
我的服务使用DataContractSerializer(对于xml)和DataContractJsonSerializer(对于JSON)支持Xml和JSON响应.
响应大小可能像30MB.
IIS中托管的ASP.NET Web API中默认允许的响应大小是多少?
如何修改默认设置?
返回这些大数据的最佳做法是什么(虽然它不是那么大)?
我应该压缩回复吗?
此外,我们每秒可能会收到一个请求.
谢谢
Toa*_* Vo 13
我不确定你的问题.因为Response没有限制大小.我们可以通过Content-Length在响应头中添加更多参数来限制响应大小.所以我假设你有两个问题如下:
1.请求获得限制:
要解决此问题,您应该增加请求大小,以便可以获得大规模响应.要增加请求大小,请web.config按以下方式添加:
<system.web>
<httpRuntime maxRequestLength="2147483647" />
Run Code Online (Sandbox Code Playgroud)
2.您的响应缓冲区大小是限制异常:
请按照MSDN 的链接.
编辑:
IIS中托管的ASP.NET Web API中默认允许的响应大小是多少?
响应大小将根据我们放入其中的消息大小自动获取大小.它对响应大小有限制.该HttpReponseMessage实际上是我在上面张贴类似的响应.
返回这些大数据的最佳做法是什么(虽然它不是那么大)?
你应该采取链接.处理数据的最佳实践是转换为二进制数据并将其转移为许多小部件.
我应该压缩回复吗?
取决于您的背景.IIS 7.0已经允许您配置zip响应,但在客户端已经支持zip响应时要小心你的代码.
在你的web.config中尝试这个代码它解决了我的问题
<configuration>
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="50000000"/>
</webServices>
</scripting>
</system.web.extensions>
</configuration>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41353 次 |
| 最近记录: |