caching - DotNetNuke 模块在 "Edit"模式下工作,但不适用于 "View": cache problem?

标签 caching module dotnetnuke

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

令人难以置信的是,当我以管理员身份登录 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 上,您需要确定一些事情。

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

关于caching - DotNetNuke 模块在 "Edit"模式下工作,但不适用于 "View": cache problem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4523278/

相关文章:

caching - 如何在 Vaadin 中禁用浏览器缓存

c - 如何用C写一个程序来测量缓存的速度?

java - 实现 servlet 数据的缓存

java - 如何在 OSGi (Apache Felix) 中注册服务?

asp.net-mvc - DotNetNuke 中的 ASP.NET MVC?

javascript - asp.net-mvc:javascript 缓存

docker - docker中的Drupal - 缺少站点/默认/模块/admin_menu/admin_devel/admin_devel.js

xcode - Interface Builder 文件中的未知类。 Xcode 6 和 swift

module - DotNetNuke:博客模块的社交链接

javascript - 深度神经网络 : dnnConfirm needs two clicks to show