将大型JSON对象发布到ASP.NET MVC

我正在使用KnockoutJS的映射插件将我的模型转换为Knockout对象。 但是我在将大型json对象发送回服务器时遇到问题。 我的ajax调用看起来像这样:

$.ajax({ url: "/home/DoStuff", type: "POST", data: JSON.stringify({ deal: ko.toJS(myObjectViewModel) }), contentType: "application/json", dataType: "json", success: function (result) { console.log(result); }, error: function (xhr, status, message) { console.log(xhr); } }); 

执行此脚本永远不会命中控制器中的DoStuff操作。 当我用Firebug检查时,POST就会继续旋转。 在Firebug的Net选项卡中,它表示Post Body为159.9 KB,Total Sent为165.1 KB(包括标题)。 如果它被发送,为什么它没有在代码中击中我的断点?

但是,当我只发送myObjectViewModel的属性时,它会发布很好,一切都很成功。 因此,我认为问题在于发布的数据大小。 所以我尝试增加maxJsonLength。

        

这没有用。

还有什么我应该做的吗?

我想我的对象超过了允许ASP.NET反序列化的最大成员数。 我添加了以下内容以增加它并且它可以工作。

    

更新:所以还有更多的东西,因为在我开始工作之后,最终它将停止工作似乎没有理由。 Firebug会再次显示post刚刚旋转而没有击中后端的代码。 只有在我关闭Firefox后,杀死了IIS Express进程并关闭了Visual Studio,该post才开始重新开始工作。 但关闭VS似乎是关键。 在我再次使用它之后,更改代码并重新运行应用程序会使问题重新出现。 出现问题时,即使是硬刷新也不会加载页面。 它只会坐在那里旋转。 该页面将仅在我终止IIS Express进程并从VS重新运行后重新加载。

所以我转储了IIS Express并在我的机器上使用了完整的IIS。 看起来这样可以解决问题。 即使在更改代码和重新编译之后,每次都会发布大型json数据。

IIS Express似乎可以处理少量的json,但在更大的集合上会出现窒息。 我没有彻底测试到100%确认这一点,但我知道完整的IIS性能更可靠。 虽然没有测试VS的内部Web服务器。

环境:Windows 8,Visual Studio 2012 Update 3

我正在向我的控制器传递包含近1,50,00,000个字符的大型JSON数据,并在web.config中进行以下更改:

    

这对我很有帮助…..

您可能需要提高通用最大请求长度 (以千字节为单位,例如1GB)

      

如果您使用的是IIS 7,可能会出现最大内容长度 (以字节为单位,例如1GB)

        

我有同样的问题从客户端发布大型模型对象数据(JSON)到服务器控制器操作。 添加以下设置配置工作正常。 谢谢。