DotNetNuke模块在“编辑”模式下工作,但不适用于“视图”:缓存问题?

时间:2010-12-23 23:41:14

标签: caching module dotnetnuke

我有一个DNN任务,只需运行一些Javascript来根据几个输入字段计算价格。这个模块在我们的生产网站上运行良好,但我们有一家公司为我们做了一个改善网站外观的模型,并且模块在这个新系统下失败了。 (DNN 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安装(我认为数据库方面)。

4 个答案:

答案 0 :(得分:4)

在5.6.x上,您需要确定一些事项。

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

在我的情况下,我不得不删除/ Portals / 0 / Cache / Pages

下的文件

在我这样做之后,我不得不重新编辑模块内容并进行了更改。

(DNN v7)

答案 3 :(得分:0)

我遇到了同样的问题,链接无法在视图模式下工作,并且在编辑模式下工作。 使用dnn 5.6.0

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

这为我纠正了问题,现在我的链接在视图和编辑模式下都有效。