小编Bas*_*e33的帖子

尝试通过 Powershell 脚本启动应用程序池 - 间歇性出错

我有一个批处理脚本,它允许我关闭站点、部署文件并重新打开站点。

  1. 停止应用程序池 - 有效
  2. 停止网站 - 有效
  3. 部署文件 - 有效
  4. 启动应用程序池 - 仅有时有效!
  5. 启动网站 - 如果以前的作品有效

我正在运行 Windows Server 2012 R2,批处理脚本由 Octopus Deploy 触手执行。

它失败的线路是:

 Start-WebAppPool -Name $appPoolName
Run Code Online (Sandbox Code Playgroud)

$appPoolName 在哪里 live.website.com

这条线有时有效,但在其他情况下无效,并且在任何模式中都不一致。

我在其他服务器上有相同的脚本。我检查了应用程序信息服务是否正在运行并且运行良好。事件查看器中没有系统日志。

虽然,我有一个应用程序错误,它在调用 Start-WebAppPool 时引发:

ERROR  + Start-WebAppPool -Name $appPoolName
ERROR  start-webitem : The service cannot accept control messages at this time. 
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么会发生这种情况?我试图编写一个 do-while 循环,直到它处于“已启动”状态,但它永远循环失败。

更新

原来当我关闭应用程序池时,进程并没有停止。

为什么在停止应用程序池后进程会继续运行?它实际上继续运行,没有停止。

固定的!

所以 - 按照下面的评论,当我停止应用程序池时,我现在确保它在继续脚本之前完全处于停止状态。

这是我现在拥有的脚本并且完全正常工作:

# Load IIS module:
Import-Module WebAdministration

# Get AppPool Name
$appPoolName = $OctopusParameters['appPoolName']

if ( (Get-WebAppPoolState …
Run Code Online (Sandbox Code Playgroud)

windows iis windows-server-2012-r2

20
推荐指数
1
解决办法
9279
查看次数

标签 统计

iis ×1

windows ×1

windows-server-2012-r2 ×1