【问题标题】:DotNetNuke module works in "Edit" mode but not for "View": cache problem?DotNetNuke 模块在“编辑”模式下工作,但不适用于“查看”:缓存问题?
【发布时间】:2011-05-30 05:25:26
【问题描述】:

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

令人难以置信的是,当我以管理员身份登录 DNN 并使用编辑模式时,该模块工作正常。在这种情况下,JavaScript 的小 sn-p 加载良好,填充字段会产生价格。

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

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

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

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

我猜测编辑模式会以某种方式绕过缓存,但我已经关闭了网站上的所有缓存(这对性能来说很糟糕)并且缓存版本仍然 已加载。

有人见过这样的吗?不应该清除缓存清除文件(我正在使用文件提供程序进行缓存)?如果用户回帖,缓存页面不应该返回到服务器吗?

编辑:我应该指出,缓存目录上的权限似乎不是问题... other 页面缓存输出已从此文件夹中删除,只是此页面存在此问题。

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

由于我怀疑他们以某种方式破坏了 DNN 安装(我认为是数据库方面),因此我们已经根据顾问的工作进行了评估并正在创建一个可安装的皮肤。

【问题讨论】:

  • 在页面设置中,模块设置下,缓存时长设置为多少?
  • 抱歉耽搁了……节日的疯狂。该模块的缓存持续时间为 60,尽管我已将其设置为各种其他选项(包括 -1,不支持缓存)无效。这与仍然有效的安装相同(在被第三方的皮肤修改之前)。

标签: caching module dotnetnuke


【解决方案1】:

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

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

这为我解决了问题,现在我的链接在查看和编辑模式下都可以使用。

【讨论】:

    【解决方案2】:

    就我而言,我必须删除 /Portals/0/Cache/Pages 下的文件

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

    (DNN v7)

    【讨论】:

    • 计划任务会自动执行相同的操作。更频繁地设置时间表可能适合您。也许它被禁用了。
    【解决方案3】:

    我遇到了同样的问题,将缓存重置为 -1 没有任何区别。

    我不得不从页面中删除模块,然后重新添加它,然后新的缓存设置才生效。

    【讨论】:

      【解决方案4】:

      在 5.6.x 上,您需要确定几件事。

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

      【讨论】:

      • 这在 5.6 上有效(使用我们现有的设置),直到应用顾问的更改(我们的生产 5.6 很好,但使用新皮肤和布局的测试 5.6 不是)。生产和测试之间的模块设置(最初)是相同的。我已尝试将 60、1、0 和 -1 作为模块缓存持续时间。页面设置具有未指定的输出缓存提供程序(页面上没有持续时间选项)作为唯一选项。我将使用这些详细信息更新问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-29
      • 1970-01-01
      相关资源
      最近更新 更多