2013-10-18 48 views
11

我有一个大块的json,我需要发布到自托管的ASP.Net Web API服务。请求实体对自托管的ASP.Net Web API来说太大

我收到“状态代码:413请求实体太大”消息。

试图将以下内容放入webapi服务项目的app.config中。

<system.web> 
    <compilation debug="true" targetFramework="4.0" /> 
    <customErrors mode="Off"/> 
    <httpRuntime 
     maxRequestLength="2147483647" 
     executionTimeout="300" /> 
</system.web> 

这没有帮助。

我在考虑以下两个选项。

  1. 解压JavaScript中的数据可能使用LZW compression library并在接收后在webapi端解码。
  2. 找到一个方法来允许的WebAPI的基础设施,使大块数据

的我更喜欢第二个选项,但还没有找到如何做到这一点。

任何指针?

回答

13

我得到同样的问题,并能够在代码中进行更改。

var config = new HttpSelfHostConfiguration(host); 
config.MaxReceivedMessageSize = 2147483647; // use config for this value 
/* 
other setup for the config 
*/ 
using (var server = new HttpSelfHostServer(config)) 
{ 
    server.OpenAsync().Wait(); 
    Console.WriteLine("Insight.Web"); 
    Console.ReadLine(); 
} 
+1

这是正确的答案。在你回答之前,我意外地发现了这个问题,因为我正在通过config的属性,并且像魅力一样工作。 – Vin