![](/img/trans.png)
[英]Displaying a large number of records from WCF in a DataGridView with locator
[英]OutOfMemory exception when large number of records is sent from WCF to Silverlight
我有一個Silverlight應用程序,在其中調用WCF服務以從數據庫中獲取數據。 如果記錄數少,則工作正常,但是如果記錄數多,則拋出System.OutOfMemory異常。
我已經在WCF錯誤日志文件中跟蹤了它。 是否有任何方法可以壓縮從WCF到Silverlight應用程序的數據?
在您的服務Web配置中,將此項目添加到服務行為和端點行為中。 然后它可以傳輸高達2 GB的數據。
<dataContractSerializer maxItemsInObjectGraph="2147483647"/>
一次傳輸500,000(半百萬)條記錄對於系統來說太大了。 我還要說的是,您的用戶無法應付的太多。
您應該將其分解為幾頁數據,一次只返回幾頁。 Silverlight / WCF(RIAServices)DomainDataService可以為您處理所有這一切:
<riaControls:DomainDataSource QueryName="GetResults"
LoadSize="200"
PageSize="100"
AutoLoad="True"/>
您可以在頁面上添加一個頁面控件,以在用戶控制下瀏覽數據頁面。
由於您每次僅返回少量數據,因此這使您的應用程序具有更高的響應速度。 一次性返回500,000條記錄也很可能導致連接速度慢的人超時。
我還建議您考慮過濾數據,以便僅返回用戶感興趣的數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.