2013-01-05 319 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的时候。