2013-10-18 44 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