首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何刷新#include文件 - 它们在IIS7/ASP.NET上进行缓存

在IIS7/ASP.NET上,#include文件可能会被缓存,导致在更新这些文件后,用户仍然看到的是旧的内容。为了解决这个问题,可以尝试以下方法来刷新这些文件的缓存:

  1. 修改Web.config文件:在Web.config文件中,可以添加或修改以下配置来禁用或控制缓存:
代码语言:xml<system.webServer>
复制
 <staticContent>
   <clientCache cacheControlMode="DisableCache" />
  </staticContent>
</system.webServer>

这将禁用所有静态文件的缓存。如果只想禁用#include文件的缓存,可以在Web.config文件中添加以下配置:

代码语言:xml<system.webServer>
复制
 <staticContent>
   <clientCache cacheControlMode="DisableCache" />
  </staticContent>
  <handlers>
    <add name="IncludeHandler" path="*.include" verb="*" type="System.Web.StaticFileHandler" preCondition="integratedMode" />
  </handlers>
</system.webServer>

这将为所有扩展名为.include的文件禁用缓存。

  1. 在代码中添加缓存控制:在ASP.NET应用程序中,可以通过在代码中添加缓存控制来禁用或控制缓存。例如,可以在Global.asax文件中添加以下代码:
代码语言:csharp
复制
protected void Application_BeginRequest(object sender, EventArgs e)
{
    HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
    HttpContext.Current.Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
    HttpContext.Current.Response.Cache.SetNoStore();
}

这将为所有请求禁用缓存。如果只想禁用#include文件的缓存,可以在Global.asax文件中添加以下代码:

代码语言:csharp
复制
protected void Application_BeginRequest(object sender, EventArgs e)
{
    if (HttpContext.Current.Request.Path.EndsWith(".include"))
    {
        HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
        HttpContext.Current.Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
        HttpContext.Current.Response.Cache.SetNoStore();
    }
}

这将仅为扩展名为.include的文件禁用缓存。

  1. 使用脚本或工具:可以使用脚本或工具来自动刷新#include文件的缓存。例如,可以使用PowerShell脚本来删除IIS缓存:
代码语言:powershell
复制
Import-Module WebAdministration
$siteName = "Default Web Site"
$appPoolName = "DefaultAppPool"

# Stop the application pool
Stop-WebAppPool -Name $appPoolName

# Delete the temporary files
Remove-Item "C:\inetpub\temp\IIS Temporary Compressed Files\$siteName" -Recurse -Force
Remove-Item "C:\inetpub\temp\ASP Compiled Templates\$siteName" -Recurse -Force

# Start the application pool
Start-WebAppPool -Name $appPoolName

这将删除IIS缓存中的临时文件,并重新启动应用程序池。

请注意,这些方法可能会影响性能和响应时间。在实际应用中,建议根据具体情况选择合适的方法来刷新#include文件的缓存。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Windows Server2008中的IIS7的五大特性

新的IIS7则完全解决了这个问题,IIS7从核心层讲被分割成了40多个不同功能的模块。像验证、缓存、静态页面处理和目录列表等功能全部被模块化。...不过虽然PowerShell也可以管理运行在Windows Server 2003的IIS6,但是IIS7才是特为通过PowerShell的命令行来进行管理的。...然后你可以添加任意数目的无状态,无配置的web服务器到一个web farm,只需将它们指向那个文件共享,来动态装载它们的配置设置(包括绑定,虚拟目录,应用池设置等等)和应用内容即可。...这使得多个机器扩缩一个应用简直是小菜一碟,可避免使用复制方法来做配置和应用部署(只要把文件拷贝到文件共享,web farm里的所有机器就会马上装载变动过的文件)。...除了写起来非常痛苦外,ISAPI如何接入服务器以及允许开发人员定制方面也是非常有限。例如,你无法ISAPI扩展中实现URL重写代码(注:ASP.NET是以ISAPI扩展的方式实现的)。

1.7K60

ASP.NET-自定义HttpModule与HttpHandler

之前的ASP.NET如何在IIS下工作的这篇文章中介绍了ASP.NET与IIS配合工作的机制,http请求经过一系列处理后,最后到达ASP.NET管道中,这时,就是Http Modules和HttpHandler...订阅 AuthorizeRequest 事件可确保处理附加的模块或事件处理程序之前对请求进行身份验证和授权 PostAuthorizeRequest #发出信号表示 ASP.NET 已对当前请求进行了授权...这依赖于Web应用程序的输出缓冲时怎样设置的 PostResolveRequestCache # ASP.NET 跳过当前事件处理程序的执行并允许缓存模块满足来自缓存的请求时发生 MapRequestHandler...#当 ASP.NET 执行完事件处理程序以使缓存模块存储将用于从缓存为后续请求提供服务的响应时发生 PostUpdateRequestCache # ASP.NET 完成缓存模块的更新并存储了用于从缓存中为后续请求提供服务的响应后...-- 有关如何配置 ASP.NET 应用程序的详细信息,请访问 http://go.microsoft.com/fwlink/?

1.8K81
  • 【译】ASP.Net和IIS中删除不必要的HTTP响应头

    同样,Web服务器也会在发送回客户端时伴随着一些HTTP头,这些HTTP头可以通知浏览器如何生成相应的内容和缓存内容的时间,Web服务器也会发送自身的识别信息,这很像User-Agent HTTP头,这些头信息包括...MVC的话): X-AspNetMvc-Version:1.0        这些服务器自身识别信息大多数情况下并不会被浏览器使用,因此可以被安全的移除,这篇文章的余下部分将会讲述如何移除这些HTTP...(如果你的网站是IIS7环境下,那你可以通过HTTP Module的形式通过编程来移除)      IIS6中移除X-Powered-By HTTP头: 启动IIS Manager 展开Website...IIS7和整合管道模式中移除Server Http头,更多细节,请查看:Cloaking your ASP.NET MVC Web Application on IIS 7 小结     移除服务器自身识别响应头会有如下好处...这降低了服务器和浏览器之间所需传输的数据量 使黑客攻击服务器变得更加困难,从而使服务器更加强壮     如上的几个HTTP头并没有带来直接的好处,反而小幅加重了宽带的负担,所幸的是我们可以通过配置的方式进行移除

    3K10

    IIS7报500.23错误的原因分析及解决方法

    IIS7的应用程序池有两种模式,一种是“集成模式”,一种是“经典模式”。   经典模式则是我们以前习惯的IIS 6 的方式。   ...两种解决方法: 第一种方法、配置应用程序池   IIS7配置应用程序池,并且将程序池的模式改为“经典”,之后一切正常。...如图:   用了IIS7.x,但实际只发挥了6的功能,另外,一些ASP.NET MVC程序中的效果也不好,所以,我们尝试以下解决方法: 第二种方法、修改web.config配置文件:   注: web.config...IIS7中, IIS管理器中的advanced settings中, General里的ID就是Site ID, 然后你需要通过这个ID来定位LogFiles文件夹中哪一个文件夹属于你要查看的站点....Asp.net,与 PHP等等寄宿IIS中的插件别无二致。

    69340

    ASP.NET如何在IIS下工作的

    Worker Process 初始化的时候,加载 ASP.NET ISAPI,ASP.NET ISAPI 进而加载 CLR。...除了IIS的整体运行方式不同之外,IIS7相比IIS6最大的不同之处在于它提供了两种应用程序池管道模式: 经典模式:是与IIS 6或者之前版本保持兼容的一种模式,一个典型问题就是,处理ASP.NET这种动态网站的时候...下图展示了IIS7经典模式与IIS6的应用程序池管道模式运行原理,针对不同的请求,会指定不同的ISAPI(dll)进行处理: ?...如下图IIS7集成模式中,打开处理程序映射,可以看到aspx类型页面所对应的不再是一个dll,而是一个类型。 ?...总结与扩展: 对于处理ASP.NET应用程序而言,IIS6及IIS7的经典模式需要aspnet_isapi.dll来处理,而IIS7集成模式不需要aspnet_isapi.dll来处理,而可以直接根据文件扩展名找到相应的处理程序接口

    2.9K80

    模块和处理程序之通过HttpModule和HttpHandler拦截入站HTTP请求执行指定托管代码模块

    但是,很多时候,我们需要能够低级层面进行交互,例如:Web服务器如何处理入站的出站的Http请求,这就需要找到与iis交互的方法!...2、处理Http请求 开始编写模块和处理程序之前,应该先了解IIS和Asp.Net如何处理入站的Http请求,以及将我们的逻辑插入这些请求时,该用什么选项。IIS是入站HTTP请求的基本端点。...从较高层面来看,它的工作是监听和验证入站的Http请求,然后把它们路由到合适的模块进行处理,再把结果返回给最初的请求者,ASP.NET是处理(IIS传送过来的HTTP请求)的模块之一,但是这些请求如何处理...(3)、IIS7、IIS8和Asp.NetIIS7开始,Asp.Net就被集成到了IIS请求处理管道之中,并且允许管道中集成托管模块 ?...IsReusable属性: 该属性告诉入站的Http请求是否可重用这个HttpHandler实例 (8)IIS中映射文件扩展名

    1.1K100

    再谈web开中几种经典的大文件上传组件

    ,然后客户端用ajax不断刷新从而显示进度条. ?...这也是我使用时间最长的一种解决方案,IIS7出现以前完全没有任何问题,但IIS7及以上版本中,如果用了这个控件,应用程序池就只能运行在“经典”模式下,无法充分发挥IIS7的优点。...2959920b8267aaca.skydrive.live.com/self.aspx/Web%e5%bc%80%e5%8f%91/SwfUpload^_Single^_FormDemo^_For^_Asp.Net...凡是有上传的地方,都是可以上传木马的地方,不要相信任何客户端提交过来的文件。(比如客户可以把.aspx改成.jpg上传,如果服务器管理员发神经把.jpg映射成跟.aspx一样,嘿嘿...)...所以我的建议是:一定要在服务端检测文件MIME类型,要伪造这个是比较困难的,相对更安全;同时服务端上的上传目录不要给予任何执行权限,只要读取权限即可.

    1.1K60

    ASP.NET Core中间件与HttpModule有何不同

    前言 ASP.NET Core中最大的更改之一是对Http请求管道的更改,ASP.NET中我们了解HttpHandler和HttpModule但是到现在这些已经被替换为中间件那么下面我们来看一下他们的不同处...HttpHandler Handlers处理基于扩展的特定请求,HttpHandlers作为进行运行,同时做到对ASP.NET响应请求。...它提供了对文件特定的扩展名处理传入请求, ASP.NET框架提供了一些默认的Http处理程序,最常见的处理程序是处理.aspx文件。下面提供了一些默认的处理程序。...中间件和HttpModule的相似处 中间件和HttpMoudle都是可以处理每个请求,同时可以配置进行返回我们自己的定义。...中间件和httpModule之间的区别 HttpModule 中间件 通过web.config或global.asax配置 Startup文件中添加中间件 执行顺序无法控制,因为模块顺序主要是基于应用程序生命周期事件

    65220

    ASP.NET Core中间件与HttpModule有何不同

    前言 ASP.NET Core中最大的更改之一是对Http请求管道的更改,ASP.NET中我们了解HttpHandler和HttpModule但是到现在这些已经被替换为中间件那么下面我们来看一下他们的不同处...HttpHandler Handlers处理基于扩展的特定请求,HttpHandlers作为进行运行,同时做到对ASP.NET响应请求。...它提供了对文件特定的扩展名处理传入请求, ASP.NET框架提供了一些默认的Http处理程序,最常见的处理程序是处理.aspx文件。下面提供了一些默认的处理程序。...中间件和HttpModule的相似处 中间件和HttpMoudle都是可以处理每个请求,同时可以配置进行返回我们自己的定义。...中间件和httpModule之间的区别 HttpModule 中间件 通过web.config或global.asax配置 Startup文件中添加中间件 执行顺序无法控制,因为模块顺序主要是基于应用程序生命周期事件

    89340

    反向代理(Reverse Proxy)及 IIS 7 应用请求路由模块

    反向代理一般只缓存可缓冲的数据(比如html网 页和图片等),而一些CGI脚本程序或者ASP.NET/JSP之类的程序不缓存。它根据从WEB服务器返回的HTTP头标记来缓冲静态页面。...Application Request Routing(ARR)是一个基于代理的路由模块,可以根据HTTP头、服务器变量和负载均衡算法将HTTP请求转发到内容服务器。...ARR还有一种特性叫做shared hoster,用于修改如何共享目前提供的共享主机,为客户增加额外的服务。...IIS 7.0 的应用请求路由模块(Application Request Routing (ARR) module),我们可以轻松实现反向代理.如何使用可参看下列几篇文章: 如何利用 IIS7 的 ARR...模組實做 Reverse Proxy 機制 IIS7中应用Application Request Routing配置反向代理 web developer tips (36):使用IIS7.0 应用请求路由模块管理网站的

    1.5K80

    【2013年】开发常见问题回顾(一)

    IIS才能通过链接下载文件  如果不进行任何的配置,通过url直接下载一个doc类型文件(例如:http://www.xxx.com/1.doc),页面会返回如下错误: HTTP 错误 404.3 -...解决方法: 以IIS7.5为例  1.IIS中找到相应的网站  2.“功能视图”中找到“MIME”类型,双击进入  3.添加,文件扩展名”内填入相应的扩展名,比如:.doc  4.“MIME...如何配置IIS通过链接是下载而不是直接打开txt/图片类型文件 当正确配置MIME类型后,下载文件大部分都可以成功,但是如txt或者是一些图片格式的文件,浏览器不会填出下载窗口,而是会在当前页打开并显示其内容.../7.5配置上传大文件  IIS7/7.5中要上传文件,不仅需要配置 <httpRuntime executionTimeout="3600" maxRequestLength="2097151"/...节点是IIS7引入的  不要轻易修改上传限制,以防上传大文件攻击服务器!

    1.9K50

    ASP.NET MVC5请求管道和生命周期

    IIS7之前,如IIS6或IIS5,请求处理管道分为两个:IIS请求处理管道和ASP.NET管道,若客户端请求静态资源则只有IIS管道进行处理,而ASP.NET管道不会处理该请求。...从IIS7开始两个管道合二为一,称为集成管道。 ? 上图中主要描述ASP.NET运行时对HTTP请求的处理且不涉及太多细节。...对象池(.NET中类似的机制有线程池和字符串拘留池)中取出一个HttpApplication对象,同时ASP.NET会根据配置文件来初始化注册的HttpModule,HttpModule初始化时会订阅...ASP.NET MVC5中,Global.asax文件中定义了MvcApplication类,继承自HttpApplication类: public class MvcApplication : System.Web.HttpApplication...Action执行前会进行模型绑定和模型认证操作。

    1.7K30

    用程序实现HTTP压缩和缓存

    Asp.Net开发Web应用时,为了减少请求次数和流量,可以IIS里配置gzip压缩以及开启客户端缓存。...IIS7还好一些,但对于IIS6来说,稍微麻烦一点; 2.如果我把应用部署虚拟空间,是没办法去设置虚拟主机的IIS的 所以了解如何用程序实现http压缩和缓存还是很有必要的。...加入这个version参数的目的是为了刷新客户端的缓存,当css或js文件做了改动时,只需要在url中改变这个version值,客户端浏览器就会认为这是一个新的资源,从而请求服务器获取最新版本。...这个方法一旦被调用,那说明浏览器重新请求服务器,再次读取资源文件不就行了吗,为什么还要判断一次呢? 其实,即使客户端缓存的资源没有过期,浏览器某些时候也会重新请求服务器的,例如按F5刷新的时候。...到这里,缓存的实现可以说已经完成了,但总觉得还有个问题很纠结,那就是修改css或js之后,如何更新缓存

    2K20

    .NETASP.NET 4.5 Bundle组件(捆绑、缩小静态文件

    ASP.NET组件System.Web.Optimization的运行原理及基本的缓存问题; 我们的项目里面充斥着很多静态文件,为了追求模块化、插件化很多静态文件都被设计成模块的方式或者被分解,需要的时候通过组合的方式...UI层使用;这就带来一个问题,文件多了会影响浏览器加载页面的速度,而且由于浏览器的并发限制,对于并行的请求不是无限制的,所以捆绑静态文件的功能就产生;其实在以前,IIS还没有集成管道模型的时候我们只能通过动态资源的方式进行输出...,所以如果不加判断很有可能会注册多次,出于严谨考虑还是加上; 现在基本我们已经找到源头了,服务端这里我们先放一下,对于客户端的疑问很多,它既然帮我们捆绑了,那么缓存如何处理的,也就是说它的输出缓存有没有设置...我们看见它的Cache部分是用了If-Modified-Since来表示本地的文件的最后一次修改,这样是为了能够让服务器去验证文件是否改动,如果没有改动服务器的响应状态码为304,说明Bundle输出的时候并没有设置对这个文件进行客户端强制缓存...我们预料之中,使用了缓存数据,下面我们需要把服务器的XML文件进行修改,将222改成243454637看是否自动刷新本地缓存也就是说不会是304返回状态; ?

    1K70

    ASP.Net请求处理机制初步探索之旅 - Part 1 前奏

    开篇:ASP.Net是一项动态网页开发技术,历史发展的长河中WebForm曾一时成为了ASP.Net的代名词,而ASP.Net MVC的出现让这项技术更加唤发朝气。...但是,不管是ASP.Net WebForm还是ASP.Net MVC在请求处理机制大部分都是相同的,只是在请求处理管道上的处理事件做了不同的操作,因此,本文标题不区分ASP.Net WebForm和ASP.Net...HTTP.SYS组件的一个重要的作用就在于它有一个缓存区,会将近期处理的响应结果放入这个缓存区之中,如果再次请求这个内容,则会从缓存区中取得内容并进行响应,提高了响应速度。...IIS中,对于asp.net的请求一般是由aspnet_isapi.dll这个组件来进行.net运行时的加载和具体请求的处理。...关于IIS服务器扩展: 由于IIS服务器设计时引入了开放的ISAPI接口标准,具备极高的可扩展性。核心组件不变的情况下可灵活支持不同类型不同版本的ASP.NET应用程序。

    1.6K20

    DNS污染可用网站监控检测修复

    平时使用的系统,这里以 Windows 系统为例,系统通常会在内部有一个 DNS 的缓存 DNS 记录。缓存 DNS 记录有什么用呢? 可以帮助系统快速定位并访问 DNS 地址。...而且在网站维护的同时都可以使用iis7网站监控来第一时间检查是否被dns污染以及劫持等安全性的问题,并且可以检测快照有没有问题。...  随后就可以看到很多条的 DNS 记录在命令窗口中闪过,可以用鼠标拖动窗口右边的滑动条查看所有记录   接下来可以命令来清楚这些缓存在当前系统中的 DNS 记录,命令窗口中输入 “ipconfig...缓存记录,会发现刷新过后的 DNS 缓存记录要少,是当前最新的一些 DNS 记录。   ...,选择用系统自带的记事本打开即可   打开 hosts 文件以后,内容分为二部分,开始部分为这个文件的英文介绍,后面一部分是本机的 DNS 记录   如果发现在此文件中有一些其它的陌生 DNS 记录,可以删除它们

    4.2K30
    领券