热门标签 | 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.

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


推荐阅读
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 在ElasticStack日志监控系统中,Logstash编码插件自5.0版本起进行了重大改进。插件被独立拆分为gem包,每个插件可以单独进行更新和维护,无需依赖Logstash的整体升级。这不仅提高了系统的灵活性和可维护性,还简化了插件的管理和部署过程。本文将详细介绍这些编码插件的功能、配置方法,并通过实际生产环境中的应用案例,展示其在日志处理和监控中的高效性和可靠性。 ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • Spark与HBase结合处理大规模流量数据结构设计
    本文将详细介绍如何利用Spark和HBase进行大规模流量数据的分析与处理,包括数据结构的设计和优化方法。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • Docker 中创建 CentOS 容器并安装 MySQL 进行本地连接
    本文详细介绍了如何在 Docker 中创建 CentOS 容器,并在容器中安装 MySQL 以实现本地连接。文章内容包括镜像拉取、容器创建、MySQL 安装与配置等步骤。 ... [详细]
  • XAMPP 遇到 404 错误:无法找到请求的对象
    在使用 XAMPP 时遇到 404 错误,表示请求的对象未找到。通过详细分析发现,该问题可能由以下原因引起:1. `httpd-vhosts.conf` 文件中的配置路径错误;2. `public` 目录下缺少 `.htaccess` 文件。建议检查并修正这些配置,以确保服务器能够正确识别和访问所需的文件路径。 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
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社区 版权所有