刷新 DotNetNuke 门户别名缓存,而无需回收应用程序池



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

这通常效果很好,但是目前如果我们重命名其中一个子域/别名对(例如,由于创建时的拼写错误或其他原因),则在我们回收应用程序池之前,更改不会生效。由于这是一个拥有数千名用户和电子商务解决方案的实时应用程序,因此随机重置每个人的会话是不可接受的。等到每晚回收子域/别名更改生效并不理想。

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

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

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

如果你真的不能使用公共API

(你真的应该使用公共API),那么你可能需要调用DataCache.RemoveCache(DataCache.PortalAliasCacheKey)。

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

我不想这么说,但听起来你只需要安排停机时间和回收。您可以从主机面板执行清除缓存,但我不确定这是否会完成您正在寻找的内容。

相关内容

最新更新