0

我有一个 ASP.NET 3.5 应用程序并尝试更新具有嵌套自定义控件的更新面板。在该自定义控件中是一个 ComponentArt Gird,在此更新中,它被几乎 13MB 的数据填充(是的,我可以将其分块......)。

我在更新面板中有一个隐藏按钮,当我需要更新面板和网格时,我从客户端由 JS 触发。

当我在 asyncPostback 期间使用 Updatepanelxyz.Update() 调用 Update 方法时,我稍后会在该过程中得到 asyncPostBackError 说,JSonSerializer 无法处理这么多的数据。我应该增加指定的值。

确实。明白了。但是当我在 web.config 中更改这个值时,它只能工作到大约 8MB,但不会更多。在这种情况下,JSonSerializer 是否有限制。我已经将该值设置为 Int32 的最大值,这是默认值的 1000 倍,对于 4MB 的序列化数据来说已经足够了。

有什么建议么?有什么方法可以强制序列化程序实现这一点?有什么方法可以使用另一个序列化器?

干杯,史蒂夫

4

3 回答 3

1

伙计,1 mb 的数据太多了 - 为什么你需要 13?

我真的认为你需要重构你的用户界面。我不在乎你的网络有多快,那只是疯狂的东西!

于 2008-11-12T06:06:46.750 回答
0

我完全同意 UI 和 DataAccess 层需要重构,但在短期内,我只是在寻找一种简单快捷的解决方案来帮助我的客户,直到软件的下一次更新出来。

于 2008-11-13T19:23:47.917 回答
0

最好的办法是更改 web.config 部分中的 ScriptingJsonSerializationSection.MaxJsonLength 属性。

它默认为 102400 个字符,而 JsonSerializer 类的限制为 2097152 个字符。

看:

JsonSerializer 类 maxJsonLength 属性

JsonSerialization 配置节最大长度属性

正如我上面提到的,不幸的是,更改配置部分属性是唯一的方法。

于 2011-01-27T02:55:48.720 回答