【发布时间】:2011-10-24 06:42:21
【问题描述】:
我有一个 PowerShell 脚本,当我们的监控服务检测到网站已关闭时,它会自动运行。
它应该停止AppPool(使用Stop-WebAppPool -name $AppPool;),等到它真正停止然后重新启动它。
有时进程实际上并没有停止,表现为错误
Cannot Start Application Pool:
The service cannot accept control messages at this time.
(Exception from HRESULT: 0x80070425)"
当您尝试重新启动时。
如果停止所需的时间超过一定的秒数(我会在多次停止计时后选择该时间量以查看通常需要多长时间),我只想终止该进程。
我知道可以通过dir IIS:\AppPools\MyAppPool\WorkerProcesses\得到AppPool中worker使用的进程列表,
Process ID State Handles Start Time
---------- ----- ------- ----------
7124 Running
但我不知道如何实际捕获进程 ID,以便我可以杀死它。
【问题讨论】:
-
您使用的是什么操作系统?我在 Windows 7 上看不到该选项
-
其实我刚刚意识到我需要在Win7盒子上做以下事情:import-module WebAdministration
-
Server 2008 R2 Web。我不记得我是否必须手动导入该模块。
-
我刚刚检查过了。您必须在 Server 2008 R2 下导入模块。
标签: iis powershell automation