2012-02-28 86 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個對象,但無論如何。提高這個解決了這個問題。