2013-02-26 18 views
0

我檢查了網絡,到目前爲止我無法找到我正在尋找什麼。這裏是我的問題: 讓我們假設我們有一個wcf服務,它返回一個簡單的文本甚至是一個對象(一個類)。如果我們已經將maxreadsize,配額大小等增加到最大值以避免錯誤,並且返回值的大小大於網絡連接的「速度」,是否會自動轉移整個返回值? 例如:將wcf處理不同連接速度的返回值(大尺寸)?

速度是20kbps和返回值,是一個大小爲30 kb的類..will wcf在2秒或其他什麼?(假設超時值也設置爲正確的數量)。 我很困惑這個,請指導我。

回答

1

好吧,它走的很快。 如果你的有效負載實際上是30.000位(而不是字節),你會在一個愉快的一天中在2秒內通過電纜獲得它。 但是任何事情都會干擾會話,就像另一個應用程序也使用帶寬一樣,或者你有數據包丟失,大延遲或連接問題,你將會失敗。

這不是特定於WCF,而是所有網絡通信。 根據WCF配置,您可能會有或多或少的序列化開銷,這可能會使傳輸的大小大於「原始」數據大小。

確切知道的唯一方法是進行廣泛的測試。您可以使用Fiddlerplugin或其他工具來模擬慢速網絡連接。

+0

剛纔你提到的「失敗」是什麼意思,所以wcf無法在下次嘗試或其他事情時再發送它? ..事情是我不在乎傳輸信息的時間。我真正想知道的是當速度不足以傳輸類或字符串時會發生什麼,例如作爲返回當它被客戶端調用時,「string get_string()」的值是什麼?即如果連接穩定但速度慢,是否會最終完成? – 2013-02-26 12:14:35

+0

您將在兩秒內傳輸數據失敗。 如果您每兩秒發送一個新的30kb包,並且您的連接無法處理速度,您最終將填充TCP緩衝區。實際上,我不確定你遇到了什麼問題,要麼你得到一些異常,要麼你的內存消耗會隨着排隊的消息而增長。有一點你的連接會充分競爭給你各種超時和其他奇怪的東西。 – 2013-02-26 12:44:10

相關問題