【发布时间】: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