【问题标题】:Caching not working when deployed in IIS8在 IIS8 中部署时缓存不起作用
【发布时间】:2014-10-13 08:49:48
【问题描述】:

我们使用 MVC4 和 Jquery Mobile 开发 Web 应用程序。我们的要求是缓存所有图片、jquery、css。所以我尝试了下面的代码,它就像魅力一样。

  <staticContent>
        <clientCache cacheControlMaxAge ="2.00:00:00" cacheControlMode="UseMaxAge" />
    </staticContent>

在我的视觉工作室中,它的工作很棒。我可以捕获所有图像,脚本。

但是当我部署在 IIS8 缓存中时不起作用。我尝试了很多,但没有运气。请指导我。为什么部署在 IIS 中时缓存不起作用。

我正在使用 IIS8。我注意到的一件事是,如果我通过单击已部署的网站从 IIS 浏览,它会缓存所有内容。但是如果键入的 url 像 10.111.151.88:8002 没有在浏览器中缓存。

【问题讨论】:

    标签: c# .net asp.net-mvc iis browser-cache


    【解决方案1】:

    最后我找到了答案。问题是我在 global.asax 中有以下代码

        protected void Application_BeginRequest()
        {
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
            Response.Cache.SetNoStore();
        }
    

    它会删除我所有的缓存并使浏览器不缓存任何内容。

    【讨论】:

    • 您可能还有 。将其设置为 false 并且您的 Application_BeginRequest 不会被调用静态文件。
    【解决方案2】:

    您几乎没有添加有关 IIS 配置的信息。以下指南可能会帮助您找到缺少的配置:Configure IIS Client Cache < clientCache >

    我猜你在 Set Common HTTP Response Headers 中遗漏了一些东西。

    【讨论】:

    • 非常感谢。我使用 IIS8。我注意到的一件事是,如果我通过单击已部署的网站从 IIS 浏览,它会缓存所有内容。但是如果键入的 url 像 10.111.151.88:8002 没有在浏览器中缓存。有什么想法吗?
    【解决方案3】:

    IIS8 中是否启用了静态和动态压缩?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多