如何解决如何将很长的 json 发送到 Asp.NET MVC
当尝试在我的网站上摆出一个巨大的 json
(包括一张大图片)时,我收到以下错误:
使用 JSON 进行序列化或反序列化时出错 JavaScript 序列化器。字符串长度超过设定值 在 maxJsonLength 属性上
SO 和网络上的所有答案基本上都显示了 2 个选项:
-
在
maxJsonLength
中设置web.config
。我做的。但无济于事。我认为它仅与WebServices
相关。这不是我的情况
为了更好的衡量,我还增加了我的 MaxJsonDeserializerMembers
这是我的 web.config
的相关部分:
<configuration>
<appSettings>
<add key="aspnet:MaxJsonDeserializerMembers" value="2147483647" />
</appSettings>
<system.webServer>
<security>
<requestfiltering>
<requestLimits maxQueryString="32768" maxAllowedContentLength="40000000" />
</requestfiltering>
</security>
</system.webServer>
<system.web>
<httpRuntime maxRequestLength="7864320" requestValidationMode="2.0"
maxQueryStringLength="11000" targetFramework="4.7.2" />
</system.web>
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="2147483647" />
</webServices>
</scripting>
</system.web.extensions>
</configuration>
还是一样的错误。
如果有什么不同,我会用 fetch
发帖。
这是StackTrace
:
在
System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer
序列化程序、字符串输入、类型类型、Int32 depthLimit) at
System.Web.Mvc.JsonValueProviderFactory.GetDeserializedobject(ControllerContext
控制器上下文)在
System.Web.Mvc.JsonValueProviderFactory.GetValueProvider(ControllerContext
控制器上下文)在
System.Web.Mvc.ValueProviderFactoryCollection.GetValueProvider(ControllerContext
控制器上下文)在
System.Web.Mvc.ControllerBase.get_ValueProvider() 在
System.Web.Mvc.ControllerActionInvoker.GetParameterValue(ControllerContext
controllerContext,ParameterDescriptor parameterDescriptor) 在
System.Web.Mvc.ControllerActionInvoker.GetParameterValues(ControllerContext
controllerContext,ActionDescriptor actionDescriptor) 在
System.Web.Mvc.Async.AsyncControllerActionInvoker.c__displayClass3_1.b__0(AsyncCallback
asyncCallback,Object asyncState) 在
System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase1.Begin(AsyncCallback callback,Object state,Int32 timeout) at System.Web.Mvc.Async.AsyncControllerActionInvoker.BeginInvokeAction(ControllerContext controllerContext,String actionName,AsyncCallback callback,Object state) at System.Web.Mvc.Controller.<>c.<BeginExecuteCore>b__152_0(AsyncCallback asyncCallback,Object asyncState,ExecuteCoreState innerState) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid
1.CallBeginDelegate(AsyncCallback
回调,对象回调状态)在
System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase1.Begin(AsyncCallback callback,Int32 timeout) at System.Web.Mvc.Controller.BeginExecuteCore(AsyncCallback callback,Object state) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase
1.Begin(AsyncCallback
回调、对象状态、Int32 超时)在
System.Web.Mvc.Controller.BeginExecute(RequestContext requestContext,AsyncCallback 回调,对象状态)在
System.Web.Mvc.MvcHandler.c.b__20_0(AsyncCallback
asyncCallback,ProcessRequestState innerState) 在
System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid1.CallBeginDelegate(AsyncCallback callback,Object callbackState) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase
1.Begin(AsyncCallback
回调、对象状态、Int32 超时)在
System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase
httpContext、AsyncCallback 回调、对象状态)在
System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
在 System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) 在
System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean&
同步完成)
我还能做什么?
谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。