我写的是WEB应用,用log4net生成的日志文件不允许我删除,报“文件正在被另一个人或程序使用,关闭任何可能使用这个文件的程序,重新试一次”,我把IIS停了都没戏,应该是有进程没有关闭。如果在开发调试期可以重新生成应用,可发布的版本就完了。哪位大虾有好的方法,请指教!!

解决方案 »

  1.   

    和其他同事讨论了一下这个问题,基本上认为是应用程序在关闭后,log进程仍持有对文件的操作,在web应用程序中将IIS关闭(注意:如果是XP系统的IIS5.1要关闭inetinfo.exe进程)后可以释放对log文件的持有操作,可以删除文件。Windows服务程序可以试试手动关闭进程后看看是否还有你所说的问题
      

  2.   

    以前我也遇到过这个问题  无法修改log文件 
    一般log4net的初始化都是在Global.asax的Application_Start里开始的
    我为了测试 每次在Global.asax中修改代码或者直接什么也不修改  直接Ctrl+S保存一下
    log文件进程就自动释放了  
    当然不紧紧是log文件  Global.asax中定义的静态变量都会被初始化
    大家可以用我方法试验一下
      

  3.   

    ILog log = log4net.LogManager.GetLogger(typeof(StockFactorRanking));
    log.Info("messaGe");
    log.Logger.Repository.Shutdown();
    //上面这句就能释放控制。