gpt4 book ai didi

asp.net - 如何在 IIS 7.5 上禁用服务器端缓存 (asp net mvc3)

转载 作者:行者123 更新时间:2023-12-02 18:27:44 25 4
gpt4 key购买 nike

我在 IIS 设置方面遇到了缓存问题,以下是我的问题的简要说明:

我正在为移动设备和非移动设备创建一个网站,共享相同的 Controller 。 IE:mysite/page 将提供 mysite/page.cshtml 或 mysite/M/page.cshtml,具体取决于设备。

这里有一个问题,它在我的本地和集成环境(cassiini 和 iis 6)中运行良好,但在另一台计算机(2008r2/iis 7.5)上,显然存在积极的服务器端缓存政策:

  • 如果我从桌面计算机访问该网站,我将获得正确的页面(桌面版本)
  • 如果现在我使用手机访问该网站,我将使用桌面版本(这意味着服务器端缓存,我的手机未使用同一网络)。

相反,如果我重新启动服务器并先使用手机访问该网站,那么我将在桌面上获得移动版本(当然仅适用于我已经访问过的页面)。

到目前为止我尝试了两种解决方案:

从我的 Web.config 禁用 OutputCache:

<httpModules>
[..]
<remove name="OutputCache" />
</httpModules>

并在 IIS 中取消选中“输出缓存”中我的网站的“启用输出缓存”。

令我困扰的是,我的另一台服务器(iis 6.0)没有这个问题,尽管在这台服务器上启用了缓存,这让我认为它与 iis 7 缓存添加有关。

我的问题很简单:如何在 IIS 7.5 上禁用服务器端缓存?

预先感谢您的 iis 灯!

找到了!

抱歉,你们真的猜不到,我扩展了 RazorViewEngine(实际上我使用了一个示例移动 mvc3 模板应用程序),并且此类覆盖了 FindView,它应该考虑 useCache 参数,但显然无论如何我配置IIS,用iis7设置为true。我到处都把它设置为 false。明天我将研究对该参数的适当调整。

public override ViewEngineResult FindView(ControllerContext controllerContext, string viewName, string masterName, bool useCache)

感谢你们的帮助,我现在对 IIS 的所有缓存可能性有了很好的了解;)。有趣的是,这与 IIS 7.0 的行为不同(IIS6 和 Cassiini 是一致的)。

编辑:

更多信息:http://aspnet.codeplex.com/workitem/8201?PendingVoteId=8201 ,与FindView的调试/发布工作有关。

这正是我的问题:http://aspnet.codeplex.com/workitem/8201?PendingVoteId=8201

最佳答案

正如 Rick 所说,您需要首先对此进行分析。不过,一个快速测试是实现一个无缓存 Controller ,正如我在此处概述的那样: Disable browser cache for entire ASP.NET website

关于asp.net - 如何在 IIS 7.5 上禁用服务器端缓存 (asp net mvc3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8300037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com