Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 字符串的长度超过了maxJsonLength属性.c上设置的值#_C#_Json_Wcf_Json Deserialization - Fatal编程技术网

C# 字符串的长度超过了maxJsonLength属性.c上设置的值#

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

我试图从我的wcf服务中获得json格式的结果,如您所见:

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);
}
当我调用我的服务url
http://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
};