我有一个VB.net Web服务返回JSON,工作正常。一旦响应达到一定大小,客户端浏览器就会说服务器已关闭连接并且没有发送任何数据。使用IE,Chrome或Firefox都是如此。魔术大小似乎约为16383条记录,或大约1.13MB的数据。我知道这对于一个Web服务来说有点大,但请暂时使用它。
连接刚刚关闭,即服务器没有500或其他错误。我还在IDE 7.5和ASP.net开发服务器上看到了与IDE相同的行为。
使用firebug,fiddler和wireshark似乎都表明服务器正在关闭连接。
由于我可以在使用调试模式的IDE中发生这种情况,我可以单步执行该服务并查看服务被调用,调用数据库,正确获取所有记录,然后正常退出子服务器。我还证实这不是数据问题。
为了尝试追踪,我将此参数添加到我的system.web
运行Web服务时,Trace.axd将结果显示为200,因此Web服务器看起来很开心,但连接仍然关闭。但这条跟踪并没有显示太多细节。
是否知道服务器或客户端会像这样关闭连接的原因?以这种方式使用IIS是否有任何已知的响应大小限制?有没有办法更好地追踪这个?
非常感谢。
答案 0 :(得分:1)
我想我已经弄明白了。我发现问题的方法是通过WCF跟踪:msdn.microsoft.com/en-us/library/ms733025.aspx。它给了我这个错误:对象图中可以序列化或反序列化的最大项数是'65536'。更改对象图或增加MaxItemsInObjectGraph配额。所以我做了它所说的内容并将MaxItemsInObjectGraph提升并解决了问题。我不确定数学是如何工作的,因为16383个项目都有3个字段,所以应该是49149个对象,但无论如何。提升这个解决了这个问题。