2014-05-05 77 views
0

下面是一個示例應用程序(隨SDK提供的WebAppWalkthrough應用程序)SavedQueryDataSource緩存/更改跟蹤緩存失效問題

<crm:SavedQueryDataSource ID="EligiblePatients" SavedQueryName="Patients View" runat="server" /> 
<asp:GridView id="EligiblePatientsGrid" DataSourceID="EligiblePatients" runat="server" /> 

所以這是直接從叫Patients View保存查詢聯繫人的ASP.NET數據源/網格在我們的CRM實例中。

我安裝了Xrm Portal插件並創建了一個Web通知URL,如this procedure所示,以在CRM中的實體被創建/刪除/更新但不去時觸發緩存失效。

對於更新才能通過,我要關機這是我們用來在運行Visual Studio應用程序,然後更改都是可見的Webdev的過程。

雖然真的很奇怪。如果我開始調試我的應用程序(假設本地應用程序池第一次啓動),我會看到來自CRM的實時數據。那麼如果我在CRM中改變了一些東西並刷新了我的網頁,我確實看到了這些變化。

這是當我做同樣的測試第2,第3,第4,等時間,那麼改變永遠不會在網頁上顯示,無論在CRM發生什麼事情,除非是我殺的應用程序池。

任何想法?

回答

0

重新創建每個頁面加載的上下文。處理器時間比內存(會話存儲)便宜,而且處理起來更容易,特別是如果要從上下文重新加載更新時。如果您以後遇到性能問題,請查看緩存(以及所有需要的麻煩)。

+0

其實,我剛剛意識到我的數據源並沒有使用這個'xrm'對象,所以重新創建它並沒有太大的改變。這是'SavedQueryDataSource'數據源,需要被告知每次刷新。我相應地編輯了我的問題。 –

+0

我從根本上不同意這種說法。內存很便宜,數據庫訪問很昂貴。您應該盡力只從需要刷新的數據庫中重新加載信息。 – Zach

+0

@Zach這個問題已經發生了很大的變化,因爲儘管你的輸入都是這樣。 –