关于File Change Notification (FCNs)

1. “File Change Notifications(FCNs)”

      用来监视Web站点目录下的文件结构或内容“是否被大量改变”。如果站点被改变,则自动重启站点。这个特性主要考虑到,ASP.NET会缓存很多资源,而如果没有监控目录的变动的话,那么有些已删除的资源就有可能仍然被使用着,造成其它不必要的资源泄露。

     可能出现的问题: 删除或重命名站点下的任意目录或XML文件会导致丢失Session

     ASP.NET 2.0 SP2,提供禁用FCNs功能

     三种途径解决:

     a. 修改注册表

         HKLM\Software\Microsoft\ASP.NET下添加一个名为:FCNMode的DWORD值

         值为1:应用程序将禁用FCNs。

         值为2:应用程序将创建一个对象监视主目录,应用程序用这个对象监视每个子目录。

        最后,重启IIS。

     b. 修改代码

         在Global.asax(或其.cs文件)增加代码如下,就可以关掉FCNs

         using System.Reflection;
         PropertyInfo p = typeof(System.Web.HttpRuntime).GetProperty("FileChangesMonitor", BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static);
         object o = p.GetValue(null, null);
         FieldInfo f = o.GetType().GetField("_dirMonSubdirs", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.IgnoreCase);
         object monitor = f.GetValue(o);
         MethodInfo m = monitor.GetType().GetMethod("StopMonitoring", BindingFlags.Instance | BindingFlags.NonPublic);
         m.Invoke(monitor, new object[] { });

     c. 良好的编程习惯

         把经常修改的目录移到外面去,并做一个页面用于下载该文件夹下的文件,可以提高安全性。

         例如管理信息系统的“用户目录”等。这个方法的优点是,可以避免不必要的资源泄露。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值