3

我有一个 poweshell 命令,它从 wwwroot 目录中删除文件夹(即 Summer),并在其中重新创建包含必要文件(图像、css、dll 等)的文件夹。问题是 IIS 每隔一段时间就会锁定目录中的一些图像或文件,因此 powershell 命令无法删除该文件。在运行站点使用的powershell脚本之前,我确实回收/停止了apppool,但问题仍然存在。这个问题是随机的,即 powershell 脚本有时可以删除文件夹,而其他时候不能。奇怪的是,如果我开始删除“Summer”中的内容(子文件夹、文件),最后,我可以删除“Summer”文件夹,但这是一个手动过程,而且很乏味。

是否有任何命令可以放入 powershell 或批处理文件中以删除“Summer”文件夹,即使它被 IIS 锁定?

4

3 回答 3

2

您可以使用 IIS PowerShell 命令行开关来启动和停止应用程序池、网站等

Import-Module WebAdministration;
Stop-WebAppPool ${appPoolName}
Stop-WebSite ${webSiteName}

然后您可以使用相反的命令再次启动它们

Start-WebAppPool ${appPoolName}
Start-WebSite ${webSiteName}
于 2012-04-03T04:46:48.240 回答
2

我同意@Lynn Crumbling 并推荐 iisreset。

Sysinternals 有两个提供其他选项的工具:

ProcExp工具允许您查找哪些进程给定文件具有打开的句柄,并允许您关闭该句柄。这个工具的缺点是它不是命令行工具。

MoveFile工具允许您安排在重新启动后删除文件 。

于 2012-03-30T01:33:59.000 回答
0

正如评论中所说,使用iisreset stop完全停止 IIS是可行的。

此外,您可能只想停止尝试从中删除文件的应用程序。查看管理指南

于 2012-03-30T01:33:51.263 回答