2013-05-08 50 views
0

例如,考慮從WCF服務向主叫客戶端發送大約10000條記錄。根據WCF,我們可以在web.config文件中設置響應緩衝區大小。我希望一次獲得1000條記錄的響應部分。如何在不改變web.config文件的情況下實現這一點?..在這方面需要幫助。WCF,部分按部件數據傳輸

在此先感謝。

+0

WCF架構不知道什麼是「記錄」,因此您必須編寫必要的代碼來提供此功能。緩衝區大小是不相關的(只要它足夠大以使數據適合) – Alex 2013-05-08 11:33:00

+0

可能是所用的術語「記錄」會改變我的問題的範圍。對不起,使用它。如果數據大小超過65536(這是默認值)字節,則wcf會創建一個錯誤。一種解決方案是更新wcf服務的web.config中的maximumbuffersize值。但是,我的問題是如何避免配置文件更改並即使數據大小超過WCF支持的默認數據大小也繼續進行數據傳輸。 – prash7 2013-05-08 11:38:39

+0

我看到了,請注意,這是一個完全不同的問題,你應該替換原來的文章 – Alex 2013-05-08 11:41:36

回答

1

有關如何處理您的情況的信息,請參見Large Data and Streaming (MSDN)

默認情況下,WCF以緩衝模式處理消息。這意味着消息的全部內容在發送之前或接收到之後都會在內存中顯示。雖然這對於大多數場景來說都是一個很好的策略,並且對於諸如數字簽名和可靠傳遞等消息傳遞功能來說是必需的,但大消息可能會耗盡系統的資源。

處理大型有效載荷的策略是 串流。儘管消息(尤其是那些用XML表示的消息)通常被認爲是相對緊湊的數據包,但消息的大小可能是幾千兆字節,並且與數據包相比更像一個連續的數據流 。當數據以 流模式而不是緩衝模式傳輸時,發送方使消息正文的內容 以流 的形式對接收方可用,並且消息基礎結構將數據從 連續發送到接收方,因爲它變爲可用