C# JSON序列化问题

C# JSON序列化问题,c#,asp.net-mvc,json,asp.net-mvc-3,C#,Asp.net Mvc,Json,Asp.net Mvc 3,直到一周前,我的MVC3,C#,web应用程序运行良好。数据或代码没有更改,但现在我们收到 “使用JSON进行序列化或反序列化时出错 JavaScriptSerializer。字符串的长度超过了值集 在maxJsonLength属性上。” 我试着做了所有看起来的事情,最后今天早上决定只发送一组较小的数据(50条记录),但仍然没有运气。奇怪的是,应用程序在测试中工作,而不是在生产中 页面上收到的错误为: [InvalidOperationException: Error during serial

直到一周前,我的MVC3,C#,web应用程序运行良好。数据或代码没有更改,但现在我们收到

“使用JSON进行序列化或反序列化时出错 JavaScriptSerializer。字符串的长度超过了值集 在maxJsonLength属性上。”

我试着做了所有看起来的事情,最后今天早上决定只发送一组较小的数据(50条记录),但仍然没有运气。奇怪的是,应用程序在测试中工作,而不是在生产中

页面上收到的错误为:

[InvalidOperationException: Error during serialization or deserialization using the JSON 
JavaScriptSerializer. The length of the string exceeds the value set on the 
maxJsonLength property.]   
System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj, StringBuilder    
output, SerializationFormat serializationFormat) +588689
System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj, 
SerializationFormat serializationFormat) +74
System.Web.Mvc.JsonResult.ExecuteResult(ControllerContext context) +231
System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext 
controllerContext, ActionResult actionResult) +13

System.Web.Mvc.<>c__DisplayClass1c.<InvokeActionResultWithFilters>b__19() +23
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter,     
ResultExecutingContext preContext, Func`1 continuation) +264
System.Web.Mvc.<>c__DisplayClass1e.<InvokeActionResultWithFilters>b__1b() +20
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext 
controllerContext, IList`1 filters, ActionResult actionResult) +176
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext,     
String actionName) +329
System.Web.Mvc.Controller.ExecuteCore() +115
System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +94
System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext 
requestContext) +10
System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +37
System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +21
System.Web.Mvc.Async.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult _) +12
System.Web.Mvc.Async.WrappedAsyncResult`1.End() +55
System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +31
System.Web.Mvc.SecurityUtil.<GetCallInAppTrustThunk>b__0(Action f) +7
System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action) +23
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +59
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult 
result) +9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 
+9048061
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& 
completedSynchronously) +184
[InvalidOperationException:使用JSON进行序列化或反序列化时出错
JavaScriptSerializer。字符串的长度超过
maxJsonLength属性。]
System.Web.Script.Serialization.JavaScriptSerializer.Serialization(对象obj,StringBuilder
输出,序列化格式序列化格式)+588689
System.Web.Script.Serialization.JavaScriptSerializer.Serialization(对象obj,
序列化格式序列化格式)+74
System.Web.Mvc.JsonResult.ExecuteResult(ControllerContext上下文)+231
System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext
controllerContext,ActionResult ActionResult)+13
System.Web.Mvc.c__显示Class1C.b__19()+23
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter过滤器,
结果执行上下文预文本,Func`1 continuation)+264
System.Web.Mvc.c__DisplayClass1e.b__1b()+20
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext
controllerContext,ILST`1过滤器,ActionResult ActionResult)+176
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext ControllerContext,
字符串actionName)+329
System.Web.Mvc.Controller.ExecuteCore()+115
System.Web.Mvc.ControllerBase.Execute(RequestContext-RequestContext)+94
System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext
请求上下文)+10
System.Web.Mvc.c__显示类b.b__5()+37
System.Web.Mvc.Async.c__显示类1.b__0()+21
System.Web.Mvc.Async.c_uuudisplayClass8`1.b_uuu7(IAsyncResult)+12
System.Web.Mvc.Async.WrappedAsyncResult`1.End()+55
System.Web.Mvc.c_uuudisplayClasse.b_uuud()+31
System.Web.Mvc.SecurityUtil.b___0(操作f)+7
System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(操作)+23
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)+59
System.Web.Mvc.MvcHandler.System.Web.IHTTPassynchandler.EndProcessRequest(IAsyncResult
结果)+9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
+9048061
System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔值和
同步完成)+184
MVC测试版本为2.0.41116.0,生产版本为2.0.41211.0。 我们目前以
列表的形式发送json,大小为1932123。但令人困惑的是,为什么它在测试中工作,而不是在生产中工作。我看不出有什么不同,但有人能提出一些我在检查中可能遗漏的建议吗?

我已经尝试过更新配置文件(我知道这不重要/有效),还有很多其他在线建议,但没有成功。

您需要覆盖JsonResult的ExecuteSult方法

请浏览以下连结:


可能重复的错误来自System.Web.Extensions程序集中的JavaScriptSerializer,因此您可能应该检查测试环境和产品环境之间的错误,看看是否一致。@Craig W.-导出的程序集在测试和生产中是相同的;我在我的机器上重新编译(页面在本地工作),然后构建并导出到prod。仍然没有运气:(你认为我遗漏了什么吗?