2012-02-28 80 views
0

我有一个返回JSON的VB.net web服务正常工作。一旦响应达到一定的大小,客户端浏览器就会说服务器关闭了连接并且没有发送任何数据。这是使用IE,Chrome或Firefox的情况。神奇的大小似乎约为16383条记录,或约1.13MB的数据。我知道这对于Web服务来说稍微大一些,但现在请继续。连接从vb.net发送大响应时丢弃web服务

连接刚刚关闭,即不是来自服务器的500或其他错误。我也在IIS 7.5和ASP.net开发服务器上看到了相同的行为。

使用萤火虫,提琴手和wireshark似乎都表明服务器正在关闭连接。

因为我可以在IDE中使用调试模式发生这种情况,所以我可以单步执行服务并查看该服务是否被调用,调用db,正确获取所有记录,然后正常退出子服务。我也证实这不是一个数据问题。

要尝试跟踪,我说这个参数去我的System.Web

当运行Web服务时,的trace.axd显示结果为200,所以它似乎Web服务器很高兴,但连接仍然关闭。尽管这个跟踪没有显示太多细节。

有什么理由为什么服务器或客户端会关闭这样的连接?以这种方式使用IIS有任何已知的响应大小限制吗?有什么方法可以更好地追踪这种情况吗?

非常感谢。

+0

您确定它的大小并没有超时导致它关闭吗? – stark 2012-02-28 00:30:16

+0

嗨,绝对不会超时。 16382记录工作,> = 16383不要。数据库查询运行速度很快,不超过一秒钟或两秒钟。 – user1236775 2012-02-28 01:27:16

回答

1

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