C# 如何修改Web API应用程序的默认允许响应大小设置?
我有一个返回事件列表的Web API方法:C# 如何修改Web API应用程序的默认允许响应大小设置?,c#,asp.net,asp.net-mvc,iis,asp.net-web-api,C#,Asp.net,Asp.net Mvc,Iis,Asp.net Web Api,我有一个返回事件列表的Web API方法: public HttpResponseMessage GetEvents() { ... } 我的服务使用DataContractSerializer(用于Xml)和DataContractJsonSerializer(用于JSON)支持Xml和JSON响应 响应大小可能类似于30MB IIS中托管的ASP.NET Web API中默认允许的响应大小是多少 如何修改默认设置 返回如此大的数据(虽然不是那么大)的最佳实践是什么 我该不该闭嘴回答 此外,
public HttpResponseMessage GetEvents()
{
...
}
我的服务使用DataContractSerializer(用于Xml)和DataContractJsonSerializer(用于JSON)支持Xml和JSON响应
响应大小可能类似于30MB
IIS中托管的ASP.NET Web API中默认允许的响应大小是多少
如何修改默认设置
返回如此大的数据(虽然不是那么大)的最佳实践是什么
我该不该闭嘴回答
此外,我们每秒可能会收到一个请求
谢谢我不确定你的问题。因为
响应
没有限制大小。我们可以通过在响应头中添加更多参数Content Length
来限制响应大小。因此,我假设您将遇到以下两个问题:
<system.web>
<httpRuntime maxRequestLength="2147483647" />
1。请求获得限制:
要解决此问题,您应该增加请求大小,以确保它可以接收到较大的响应。
要增加放入web.config
的请求大小,请如下所示:
<system.web>
<httpRuntime maxRequestLength="2147483647" />
2。您得到的响应缓冲区大小限制异常:
请按照MSDN中的说明进行操作
编辑:
托管在中的ASP.NET Web API中默认允许的响应大小是多少
IIS
响应大小将根据我们放入其中的消息大小自动获取大小。而且它在响应大小方面也有局限性。HttpReponseMessage
实际上是一个类似于我上面发布的响应
返回如此大的数据(尽管不是这样)的最佳实践是什么
那么大
你应该采取行动。处理数据的最佳实践是将数据转换为二进制数据,并将其作为许多小部分进行传输
我该不该闭嘴回答
这取决于你的背景。IIS 7.0已允许您配置zip响应,但请注意客户端的代码是否已支持zip响应。请在web.config中尝试此代码 它解决了我的问题
<configuration>
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="50000000"/>
</webServices>
</scripting>
</system.web.extensions>
</configuration>
我的问题是关于ASP.NET MVC Web API服务中的响应大小。该链接适用于具有4MB缓冲区限制的ASP页面。我不认为相同的设置应该应用于Web API?它们是相同的,Web API HttpResponseMessage只是http响应的包装器。