2013-01-05 321 views
4

(在參數對象太大字符串)我有一個MVC方法:Post請求體過大

public void PushFile([FromBody]FileTransport fileData) 

類是:

public class FileTransport 
    { 
     public string fileData; 
    } 

在FILEDATA我把byte[]從轉換成一個文件string(UTF-8),所以字符串可能很大。

問題是:如果字符串是大(某處以上15000個字符)的fileData參數是null。如果字符串不是那麼大,一切工作正常,參數是應該的。

我怎樣才能讓MVC接受更大的字符串,或者我需要預先壓縮字符串? 編輯: 已經嘗試過:

<system.web.extensions> 
<scripting> 
    <webServices> 
    <jsonSerialization maxJsonLength="2147483644"/> 
    </webServices> 
</scripting> 
</system.web.extensions> 

但不起作用。也許是因爲MVC使用JSON.NET而不是普通的JsonSerializer?

回答

2

您是否嘗試增加請求的最大長度?

<system.web> 
    <httpRuntime maxRequestLength="{REQUEST_LENGTH}"/> 
<system.web> 
0

簡單的一點是 - 你不把字符串放入URL中。那樣簡單。將其添加爲有效負載。網址是資源定位器,而不是「內容運營商」。

0

我發現它與內容長度無關。如果看起來Json不能正確編碼發送端的一些字符,那就是MVC控制器收到null的時候。