1

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

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

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

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

4

2 回答 2

2

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

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

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

于 2012-10-13T02:12:33.587 回答
0

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

于 2012-10-11T19:33:29.913 回答