IIS网站文件结构修改导致服务器重启的联想到IIS静态缓存方法
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
IIS网站文件结构修改导致服务器重启的联想到IIS静态缓存方法
IIS有一个“File Change Notifications(FCNs)”,ASP 2.0所谓“更安全、更稳定”的新特性,它是用来监视Web站点目录下的文件结构或内容“是否被大量改变”。
如果站点被改变,则自动重启站点。
这个特性主要考虑到,会缓存很多资源,而如果没有监控目录的变动的话,那么有些已删除的资源就有可能仍然被使用着,造成其它不必要的资源泄露。
删除或重命名站点下的任意目录或XML文件会导致丢失Session,从Global.asax(据说是一个很糟糕的设计,但我觉得还OK,长处短处是并存的。
)的运行日志看出,Web程序经常莫名其妙重启。
在Visual Studio 2008调试时使用的自带轻量级Web服务器不会有这些问题。
问题就在这里。
直观的思路就是把FCNs禁用。
既然有监视目录的功能,那么完全可以拿来做网站的静态缓存使用,当Aspx 文件第一执行编译以后,就相当于被缓存了,修改Aspx文件,无效果,必须要重启IIS才行。
非常好用。
将FCNS设置为1就ok了,同时解决了两个问题。
在HKLM\Software\Microsoft\下添加一个名为:FCNMode的DWORD 值,默认它应该是不存在的,它的值含义为:
不存在,或不等于1且不等于2:这是默认行为。
对每一个子目录,应用程序会创建一个对象监视这个目录。
值为1:应用程序将禁用FCNs。
值为2:应用程序将创建一个对象监视主目录,应用程序用这个对象监视每个子目录。
显然,FCNMode的值设为1即可禁用FCNS。
最后,重启IIS。