C# 字符串的长度超过了maxJsonLength属性.c上设置的值#
我试图从我的wcf服务中获得json格式的结果,如您所见:C# 字符串的长度超过了maxJsonLength属性.c上设置的值#,c#,json,wcf,json-deserialization,C#,Json,Wcf,Json Deserialization,我试图从我的wcf服务中获得json格式的结果,如您所见: public List<InquiryStatus> SearchInquiryStatus(string userid, string datestart, string dateend) { string result = ""; using (WebClient ClientRequest = new WebClient()) { ClientRequest.Headers["C
public List<InquiryStatus> SearchInquiryStatus(string userid, string datestart, string dateend)
{
string result = "";
using (WebClient ClientRequest = new WebClient())
{
ClientRequest.Headers["Content-type"] = "application/json";
ClientRequest.Encoding = System.Text.Encoding.UTF8;
result = ClientRequest.DownloadString(ServiceHostName + "/MonitoringInquiryService.svc/SearchInquiryStatus/" +
userid + "/"
+ datestart + "/" + dateend
);
}
var javascriptserializer = new JavaScriptSerializer();
return javascriptserializer.Deserialize<List<InquiryStatus>>(result);
}
当我调用我的服务urlhttp://reporting.demo.ir/MonitoringInquiryService.svc/SearchInquiryStatus/null/‘20171106’/‘20171113’
在浏览器中我得到了结果。
我在谷歌上搜索了我的错误,发现:
<configuration>
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="50000000"/>
</webServices>
</scripting>
</system.web.extensions>
</configuration>
我将这一行添加到我的UI web配置中。但我得到了相同的错误。在函数中添加这一行
var javascriptserializer = new JavaScriptSerializer();
javascriptserializer.MaxJsonLength = Int32.MaxValue;
您的UI项目似乎位于ASP.NET MVC框架中,其中无法从web.config设置中读取
JavaScriptSerializer
MaxJsonLength
要设置MaxJsonLength
,需要按以下方式在代码中指定值:
var javascriptserializer = new JavaScriptSerializer()
{
MaxJsonLength = Int32.MaxValue // specify length as per your business requirement
};
从code
javascriptserializer.MaxJsonLength=Int32.MaxValue尝试一次内联MaxJsonLength
设置代码>@AkashKC它可以工作。谢谢。为什么?我怀疑,您正在控制器中反序列化json,而该控制器没有从web.config中的webservices设置获取值。Web.config jsonSerialization设置仅由Web服务使用。IMHO,您的json字符串
长度大于50000000
。它在int32.MaxValue
的情况下工作,因为int32.MaxValue
等于2147483647
。要验证这一点,请尝试在web config
中用2147483647
替换50000000
,并查看它是否有效。@EhsanAkbar:该设置仅适用于web服务项目,而不适用于UI项目。
var javascriptserializer = new JavaScriptSerializer()
{
MaxJsonLength = Int32.MaxValue // specify length as per your business requirement
};