在ASP.net Web.Config中设置jsonSerialization maxJsonLength给出500错误

时间:2012-10-05 16:51:34

标签: jquery ajax web-config webmethod

因此,当我在web.config中设置maxJsonLength时,我的.net站点上的500 - 内部服务器错误页面仍然存在。

我正在修改.config,因为即使我在我的vb.net JavaScriptSerializer上使用MaxJsonLength = Int32.MaxValue,我仍然会收到一个大字典的InvalidOperationException,即使它远低于4GB MaxJsonLength @ Int32.MaxValue允许甚至假定的4mb默认限制。

如果这意味着什么,我正在使用toolkitscriptmanager。

  <system.web.extensions>
<scripting>
  <webServices>
    <jsonSerialization maxJsonLength="2147483647"/>
  </webServices>
</scripting>

这没有帮助(实际上,如果没有上面的代码,它也会产生500错误)

<sectionGroup name="system.web.extensions" type="System.Web.Extensions">
  <sectionGroup name="scripting" type="System.Web.Extensions">
    <sectionGroup name="webServices" type="System.Web.Extensions">
      <section name="jsonSerialization" type="System.Web.Extensions"/>
    </sectionGroup>
  </sectionGroup>
</sectionGroup>

听说这应该有助于InvalidOperationException,但事实并非如此。我拿出来了,仍然是500错误。

<add key="aspnet:MaxJsonDeserializerMembers" value="2147483647" />

非常感谢提前!

修改

同样的问题,但他的解决方案对我不起作用。他添加的最后一个代码也给出了500错误。 Problem with <system.web.extensions> config group when upgrading to .NET 4.0

4 个答案:

答案 0 :(得分:5)

问题在于我将代码放在web.config的开头。出于某种原因,把它放在最后工作。

不是专家,所以我不知道为什么会这样。

没有最后两个代码部分我尝试使其工作。

答案 1 :(得分:3)

我同意Gracchus,我把它放在web.config文件末尾的块下面

<system.web.extensions>
    <scripting>
        <webServices>
            <jsonSerialization maxJsonLength="2147483647"/>
        </webServices>
    </scripting>
</system.web.extensions>`

答案 2 :(得分:1)

<system.web.extensions>
    <scripting>
      <webServices>
        <!--<jsonSerialization maxJsonLength="50000000">
        </jsonSerialization>-->
        <jsonSerialization maxJsonLength="500000000">
          <!--50000000-->
        </jsonSerialization>
      </webServices>
    </scripting>
  </system.web.extensions>  

以上设置对我有用。另外,我必须将网站的目标框架设置为.Net 4.0。当目标框架设置为.Net 2.0时,此Web配置设置为我提供 500错误

要更改框架,请转到IIS并选择应用程序池右键单击您的网站名称,然后选择高级设置。在这里,您可以通过单击下拉列表来更改.Net Framework版本。

此外,我在网络配置的底部有此设置。只是为了好运:))

希望这会有所帮助。

答案 3 :(得分:1)

由于上述方法都不适合我,因此我使用了此方法

JsonResult result = Json(<your result>, JsonRequestBehavior.AllowGet);
result.MaxJsonLength = int.MaxValue;
return result;