刷新DotNetNuke Portal别名缓存而不回收应用程序池

时间:2012-10-11 16:35:38

标签: c# dotnetnuke

我正在使用DNN 6.01安装,我们为新用户创建新的子域+门户别名。如果相关,我们正在使用C#。

这大部分工作都很好,但是目前如果我们重命名其中一个子域/别名对(比如,由于创建时的拼写错误),在我们回收应用程序池之前,更改不会生效。由于这是一个包含数千个用户和电子商务解决方案的实时应用程序,因此无法随意重置每个人的会话。等到子域/别名的夜间回收更改生效不太理想。

最好以编程方式执行此操作,以便我可以简单地将其合并到管理子域/别名对的模块中。

如何在不回收应用程序池和/或删除会话的情况下以编程方式刷新DNN门户别名缓存?

2 个答案:

答案 0 :(得分:2)

如果您正在使用公共API(PortalAliasController.UpdatePortalAliasInfo似乎合适),则应该处理缓存。如果公共API不起作用,请在support.dotnetnuke.com上的跟踪器中创建一个错误。

如果你真的不能使用公共API(你真的应该使用公共API)那么你可能想要调用DataCache.RemoveCache(DataCache.PortalAliasCacheKey)。

从6.2开始,API还负责内部管理服务框架的路由。我认为没有任何公共方法可以处理服务框架的内部,因此这是确保使用公共API的另一个原因。

答案 1 :(得分:0)

我不想这么说,但听起来你只需安排停机时间和回收利用。您可以从主机面板执行清除缓存,但我不确定这是否可以实现您的目标。