我創建使用一次服務呼叫被啓動,可能需要相當多的時間RIA服務在Silverlight應用程序。我一直在尋找增加WCF服務超時的方法,但是我越想越好,這不是正確的方法。輪詢模式的Silverlight 4的WCF RIA服務
我寧願做的就是調用DomainContext並立即返回,然後讓客戶端輪詢服務器以找出長時間運行的查詢是否完成。
我找的實現是這樣的一個好辦法圖案或例子。一直想到的一個潛在問題是,Web服務不應該在服務調用之間保持狀態,但這正是我所要做的。
有什麼想法?
感謝,
斯科特
不幸的是,我正在搜索一個搜索索引,根據搜索的條件,它可能會帶回數千行。我無法在查詢中「跳過」X個結果,或者我會實現某種分頁系統。我真的需要所有的結果 - 如果不是馬上,在搜索後的很短時間內。這就是爲什麼我想我可以將完整查詢的狀態保存在服務器上,並在完成時回來獲取。我同意你的看法,那就是太多的數據無法立即恢復,但我找不到任何其他方式。其他建議? – Scott 2011-02-02 06:08:39
是否因爲您不控制您查詢的搜索索引?我認爲在這種情況下,「最RIA服務的方式」是增加超時時間,而不是輪詢 - 「DomainContext」只需要很長的時間來填充,所以你的UI應該有某種指標,而「LoadOperation」正在進行中,但最終它將全部填充「INotifyCollectionChanged」事件並更新UI。 – 2011-02-02 07:49:40
當然,我建議你跟你所查詢的索引的所有者交談,讓他們知道「嘿,我將要求更多的數據,而不是我需要的,並且花費你更多的帶寬。如果你可以以分頁的方式將數據公開給我,那對我們兩人來說都會更好「,並看看他們說了些什麼。也許他們會接受這一點,因爲它對你們和這個指數的任何未來客戶都有好處:)不會傷害到問。 – 2011-02-02 07:50:50