2012-10-11 49 views
1

我正在使用DNN 6.01安裝,我們爲新用戶創建新的子域+門戶別名。如果相關,我們正在與C#合作。刷新DotNetNuke門戶別名緩存而不回收應用程序池

這大部分效果很好,但是如果我們重命名其中一個子域/別名對(比如說,由於創建或其他類型的錯字),那麼更改在我們回收應用程序池之前不會生效。由於這是一個包含數千用戶和電子商務解決方案的實時應用程序,因此隨機重設每個人的會話是不可接受的。等到每晚再次使用子域/別名更改才能生效。

以編程方式執行此操作也是可取的,以便我可以將其簡單地合併到管理子域/別名對的模塊中。

如何在不回收應用程序池和/或刪除會話的情況下以編程方式刷新DNN門戶別名緩存?

回答

2

如果您正在使用公共API(PortalAliasController.UpdatePortalAliasInfo看起來合適),則應該照顧緩存。如果公共API不起作用,請在support.dotnetnuke.com上的跟蹤器中創建一個錯誤。

如果你真的不能使用公共API(你真的應該使用公共API),那麼你可能想調用DataCache.RemoveCache(DataCache.PortalAliasCacheKey)。

從6.2開始,API還負責內部管理服務框架的路由。我不認爲有任何公共方法來處理服務框架的內部,所以這是確保使用公共API的另一個原因。

0

我討厭這麼說,但聽起來好像你只需要安排停機時間和回收。您可以從主機面板上執行清除緩存,但我不確定這是否能完成您要查找的內容。

+0

我已經運行這個想法,並想出如何以編程方式清除主機緩存(DataCache.ClearHostCache),但我仍在測試以查看是否清除了門戶別名緩存......文檔是稀疏的。 – Mir

相關問題