热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何在IIS7.5上禁用服务器端缓存(aspnetmvc3)-Howtodisableserver-sidecachingonIIS7.5(aspnetmvc3)

ImstrugglingwithmyIISsetupregardingcaching,heresabriefdescriptionofmyproblem:我正在为关于

I'm struggling with my IIS setup regarding caching, here's a brief description of my problem:

我正在为关于缓存的IIS设置而烦恼,以下是我的问题的简要描述:

I'm making a site for mobile and non-mobile, sharing the same controllers. IE: mysite/page will serve either mysite/page.cshtml, or mysite/M/page.cshtml, depending on the device.

我正在制作一个移动和非移动的网站,共享相同的控制器。IE: mysite/page将为mysite/page提供服务。cshtml或mysite / M /页面。cshtml,取决于设备。

Here's the catch, it worked fine with my local and integration environment (cassiini and iis 6), but on another machine (2008r2/iis 7.5), apparently there is an aggressive server-side caching policy:

这里有一个问题,它在我的本地和集成环境(cassiini和iis 6)中工作得很好,但是在另一台机器(2008r2/iis 7.5)上,显然有一个积极的服务器端缓存策略:

  • If I access the website from a desktop machine, I have the correct pages (desktop version)
  • 如果我从桌面计算机访问网站,我就有正确的页面(桌面版本)
  • If now I use my mobile phone to access the site, I will have the desktop version, (which implies a server-side cache, my phone is not using the same network).
  • 如果现在我用手机访问网站,我将有桌面版本(这意味着服务器端缓存,我的手机没有使用相同的网络)。

On the contrary, if I were to restart the server and access the site using my phone first, then I will get the mobile version on my desktop (only for the pages I already visited of course).

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

I tried 2 solutions so far:

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

Disabling OutputCache from my Web.config:

从我的网站上禁用OutputCache。


  [..]
  

And unchecking "Enable output cache" in "Output Caching" for my site in IIS.

在IIS中取消对我的站点的“输出缓存”中的“启用输出缓存”。

What's bugging me is that I do not have this problem with my other server (iis 6.0), although caching is enabled on this one, which leads me to think it is related to iis 7 caching addition.

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

My question is simple: how does one disable server-side caching on IIS 7.5?

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

Thanks in advance for your iis lights!

提前谢谢你的iis灯!

Found it!

Sorry guys you could not really guess that one, I extend RazorViewEngine (actually I used a sample mobile mvc3 template app), and this class overrides FindView, it is supposed to take into account a useCache parameter, but apparently no matter how I configure IIS, it was set to true with iis7. I set it to false everywhere. I'll look into appropriate tuning of that parameter tomorrow.

对不起人你真的不能猜,我延长RazorViewEngine(实际上我使用一个移动mvc3模板示例应用程序),这类覆盖FindView,它应该考虑useCache参数,但显然无论我怎么配置IIS,它与iis7被设置为true。我把它设为false。我将在明天研究这个参数的适当调优。

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

Thanks for your help guys, I have a good understanding of all the caching possibilities with IIS now ;). It's interesting that this behaves differently with IIS 7.0 (IIS6 and Cassiini were consistent).

感谢您的帮助,我现在已经很好地理解了IIS的所有缓存可能性。有趣的是,IIS6和Cassiini在IIS 7.0中的表现是不同的。

Edit:

编辑:

More info: http://aspnet.codeplex.com/workitem/8201?PendingVoteId=8201 , it is related to debug/release working of FindView.

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

This was my exact problem: http://aspnet.codeplex.com/workitem/8201?PendingVoteId=8201

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

3 个解决方案

#1


1  

As Rick said, you need to profile this first. A quick test though would be to implement a no-cache controller as I outlined here: Disable browser cache for entire ASP.NET website

就像里克说的,你需要先对它进行剖析。一个快速的测试是实现一个无缓存控制器,如我在这里所描述的:为整个ASP禁用浏览器缓存。网的网站

#2


1  

If you are speaking to static types such as images and such you can add this to your web.config

如果您正在与静态类型(比如图像)对话,那么可以将其添加到web.config中

 
  

Update:

更新:

Here is a link

这里是一个链接

This link talks in detail about what you want to do.

这个链接详细地描述了你想要做什么。

#3


0  

I think you are dealing with browser cache. Have you profiled the traffic to see the 304s? You may be chasing the wrong problem.

我想你是在处理浏览器缓存。你分析交通状况看304了吗?你可能在寻找错误的问题。

NOTE: Your cache busting solution has to include the client side as well as the server-side.

注意:您的缓存破坏解决方案必须包括客户端和服务器端。


推荐阅读
  • 本文详细介绍了如何在PHP中使用Memcached进行数据缓存,包括服务器连接、数据操作、高级功能等。 ... [详细]
  • 本文详细介绍了在PHP中如何获取和处理HTTP头部信息,包括通过cURL获取请求头信息、使用header函数发送响应头以及获取客户端HTTP头部的方法。同时,还探讨了PHP中$_SERVER变量的使用,以获取客户端和服务器的相关信息。 ... [详细]
  • Beetl是一款先进的Java模板引擎,以其丰富的功能、直观的语法、卓越的性能和易于维护的特点著称。它不仅适用于高响应需求的大型网站,也适合功能复杂的CMS管理系统,提供了一种全新的模板开发体验。 ... [详细]
  • 本文介绍了 PHP 的基本概念、服务器与客户端的工作原理,以及 PHP 如何与数据库交互。同时,还涵盖了常见的数据库操作和安全性问题。 ... [详细]
  • 最新进展:作为最接近官方声明的信息源,本文吸引了大量关注。若需获取最新动态,请访问:lkhill.com/ccie-version-5-update ... [详细]
  • 本文将详细介绍如何配置并整合MVP架构、Retrofit网络请求库、Dagger2依赖注入框架以及RxAndroid响应式编程库,构建高效、模块化的Android应用。 ... [详细]
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 使用jQuery与百度地图API实现地址转经纬度功能
    本文详细介绍了如何利用jQuery和百度地图API将地址转换为经纬度,包括申请API密钥、页面构建及核心代码实现。 ... [详细]
  • 本文详细介绍了如何使用Linux下的mysqlshow命令来查询MySQL数据库的相关信息,包括数据库、表以及字段的详情。通过本文的学习,读者可以掌握mysqlshow命令的基本语法及其常用选项。 ... [详细]
  • 本文由公众号【数智物语】(ID: decision_engine)发布,关注获取更多干货。文章探讨了从数据收集到清洗、建模及可视化的全过程,介绍了41款实用工具,旨在帮助数据科学家和分析师提升工作效率。 ... [详细]
  • 页面预渲染适用于主要包含静态内容的页面。对于依赖大量API调用的动态页面,建议采用SSR(服务器端渲染),如Nuxt等框架。更多优化策略可参见:https://github.com/HaoChuan9421/vue-cli3-optimization ... [详细]
  • Canopy环境安装与使用指南
    《利用Python进行数据分析》一书推荐使用EPDFree版本的环境,然而随着技术的发展,目前更多人倾向于使用Canopy。本文将详细介绍Canopy的安装及使用方法。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 本文将从基础概念入手,详细探讨SpringMVC框架中DispatcherServlet如何通过HandlerMapping进行请求分发,以及其背后的源码实现细节。 ... [详细]
  • HTML前端开发:UINavigationController与页面间数据传递详解
    本文详细介绍了如何在HTML前端开发中利用UINavigationController进行页面管理和数据传递,适合初学者和有一定基础的开发者学习。 ... [详细]
author-avatar
济河南岸_797
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有