连接从vb.net Web服务发送大型响应时丢弃

时间:2012-02-28 00:17:52

标签: vb.net wcf web-services connection-close

我有一个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是否有任何已知的响应大小限制?有没有办法更好地追踪这个?

非常感谢。

1 个答案:

答案 0 :(得分:1)

我想我已经弄明白了。我发现问题的方法是通过WCF跟踪:msdn.microsoft.com/en-us/library/ms733025.aspx。它给了我这个错误:对象图中可以序列化或反序列化的最大项数是'65536'。更改对象图或增加MaxItemsInObjectGraph配额。所以我做了它所说的内容并将MaxItemsInObjectGraph提升并解决了问题。我不确定数学是如何工作的,因为16383个项目都有3个字段,所以应该是49149个对象,但无论如何。提升这个解决了这个问题。