如何让IIS7释放锁定的文件?

Modified on: Sun, 21 Jul 2019 05:20:02 +0800

在我们的生产版本中,根目录中的一个非常大(10兆字节)的静态内容文件有时会被IIS锁定,并且无法通过clean任务删除。这可能是因为当时它正在积极地服务于一个或多个客户。

构建过程在通过

清理之前停止网站

c:\Windows\System32\inetsrv\appcmd.exe stop site http://oursite.com

但是,不会释放文件 - 我们必须重新启动IIS才能让进程放弃锁定。

appcmd.exe允许您完全关闭IIS;我们想要这样做!

有没有其他方法可以让IIS放弃锁定的文件,而无需重新启动IIS?简单地停止和启动个人网站肯定无法释放文件锁。

最佳答案

有一些工具,例如Sysinternal的Process Explorer,可以找到并强制关闭文件句柄,但是在执行此操作之后,应用程序的状态和行为(包括您的,在本例中为IIS)是未定义的。有些人不会在意,有些人会出错,有些人则会崩溃。

正确的解决方案是中断并允许IIS干净地释放锁并自行清理以保持服务器稳定性。如果无法做到这一点,您可以在同一个盒子上创建另一个站点,或者设置一个包含新内容的新盒子,并移动域名/ IP以“将”新内容“提升”为生产。

作者:Greg Work

相关问答

添加新评论