Caching DotNetNuke模块在;编辑";模式,但不适用于;“视图”:缓存问题?

Caching DotNetNuke模块在;编辑";模式,但不适用于;“视图”:缓存问题?,caching,module,dotnetnuke,Caching,Module,Dotnetnuke,我有一个DNN任务,它只是运行一些Javascript,根据几个输入字段计算价格。这个模块在我们的生产站点上运行得很好,但是我们让一家公司为我们做了一个皮肤来改善站点的外观,而这个模块在这个新系统下失败了。(DNN 05.06.00(459)虽然它是5.5之前的版本…我更新了它,但徒劳地希望它是旧版本中的一个bug。) 令人难以置信的奇怪之处在于,当我登录到DNN并以管理员身份使用编辑模式时,该模块工作正常。在这种情况下,JavaScript的小片段可以很好地加载,填充字段会产生一个价格 另一方

我有一个DNN任务,它只是运行一些Javascript,根据几个输入字段计算价格。这个模块在我们的生产站点上运行得很好,但是我们让一家公司为我们做了一个皮肤来改善站点的外观,而这个模块在这个新系统下失败了。(DNN 05.06.00(459)虽然它是5.5之前的版本…我更新了它,但徒劳地希望它是旧版本中的一个bug。)

令人难以置信的奇怪之处在于,当我登录到DNN并以管理员身份使用编辑模式时,该模块工作正常。在这种情况下,JavaScript的小片段可以很好地加载,填充字段会产生一个价格

另一方面,如果我单击“查看”(或者更重要的是,如果我根本没有登录),页面将加载缓存副本。更奇怪的是,我发现生成了\Portals\2\cache\Pages中的缓存文件,然后只使用缓存的数据

加载缓存副本时,JavaScript不会出现(通常通过Page.ClientScript.RegisterClientScriptBlock()创建)。此外,将数据发布到服务器的按钮不会执行任何服务器端代码(通过调试器确认),而只是重新加载缓存副本

如果我手动删除\Portals\2\Cache\Pages中的文件,那么一切都会正常工作,但每次加载页面后我都必须这样做:如果不这样做,只会重复加载上次生成的页面

重置应用程序(通过UI或编辑web.config)不会改变这一点,从主机设置页面清除缓存实际上不会清除这些缓存页面

我猜编辑模式在某种程度上绕过了缓存,但我甚至关闭了站点上的所有缓存(这对性能很糟糕),缓存版本仍然被加载

有人看到过类似的情况吗?清除缓存不应该清除文件吗(我正在使用文件提供程序进行缓存)?如果用户发回,甚至缓存的页面也不应该返回到服务器吗

编辑:我应该指出,缓存目录上的权限似乎没有问题……缓存输出的其他页面将从此文件夹中删除,只是此页面有此问题

编辑2:澄清我没有提供的一些设置和条件。首先,该模块在DNN 5.6.0下的生产中运行良好。在我们的测试环境中,咨询公司的更改失败(仅在理论上更改皮肤和页面布局:模块源本身验证为未更改)。所有缓存设置和类似设置都已在两者之间验证为相同,我们仅求助于将模块缓存设置为0和-1(并完全禁用测试站点的缓存)当我们找不到问题的另一个原因时。在测试中,我已经看到缓存在许多其他页面上正常工作:这个页面的某些地方导致了问题


我们已经在顾问的工作基础上创建了一个可安装的皮肤,因为我怀疑他们在某种程度上破坏了DNN安装(我认为是数据库方面)。

在5.6.x上,您需要确保一些事情

  • 如果模块必须回发,则模块设置中的缓存持续时间设置必须设置为0
  • 在页面设置中,确保没有为输出缓存提供程序设置提供程序或缓存持续时间

  • 我也有同样的问题,将缓存重置为-1没有任何区别


    我必须从页面中删除模块,然后重新添加,直到新的缓存设置生效。

    在我的情况下,我必须删除/Portals/0/cache/Pages下的文件

    在我这么做之后,我不得不重新编辑模块内容,它接受了更改


    (DNN v7)

    我遇到了同样的问题,链接不能在查看模式下工作,也不能在编辑模式下工作。 使用dnn 5.6.0

    在我的模块上,我将缓存设置从60更改为0


    这纠正了我的问题,现在我的链接可以在查看和编辑模式下工作。

    在页面设置中,在模块设置下,缓存持续时间设置为什么?很抱歉延迟…假期疯狂。模块的缓存持续时间为60,但我已将其设置为各种其他选项(包括-1,缓存不受支持)无效。这与仍然有效的安装相同(在被第三方皮肤修改之前)。这在5.6上有效(使用我们现有的设置),直到顾问的更改被应用(我们的生产5.6是好的,但使用新皮肤和布局的测试5.6不是)。生产和测试之间的模块设置(最初)相同。我已尝试将60、1、0和-1作为模块缓存持续时间。页面设置具有未指定持续时间的输出缓存提供程序(页面上没有持续时间选项)作为唯一选项。我将使用这些详细信息更新问题。计划任务将自动执行相同的操作。更频繁地设置计划可能符合您的要求。可能已禁用。