IIS问题:使用PowerShell在IIS中部署代码后,默认应用程序池无法启动

时间:2014-06-10 18:05:24

标签: powershell amazon-web-services iis powershell-v2.0

我正在尝试使用AWS Auto Scaling功能启动Amazon EC2 Windows Server 2008 R2实例。我在Autoscaling Launch配置中使用了自定义AMI来启动实例。我已将PowerShell脚本放在AMI中。

脚本的职责是从AWS S3下载代码并在Windows启动时首次部署在IIS服务器中。

当我检查状态时,IIS已成功启动。但是默认的应用程序池没有启动。

要解决此问题,我编写了一个预定脚本。如果任何应用程序池处于停止状态,它将有助于启动应用程序池。

预定脚本:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Import-Module WebAdministration
cd IIS:/AppPools
$ApplicationPools = dir
foreach ($item in $ApplicationPools)
{
    $ApplicationPoolName = $item.Name
    $ApplicationPoolStatus = Get-WebAppPoolState $ApplicationPoolName
    if($ApplicationPoolStatus.Value -eq "Stopped")
    {
         #Write-Host $ApplicationPoolName --> $ApplicationPoolStatus.Value
         Write-Host $ApplicationPoolName "found stopped."
         Start-WebAppPool -Name $ApplicationPoolName
         Write-Host $ApplicationPoolName "started."
    }
}

应用程序池已启动但仍无法通过浏览器与IIS服务器通信。当我第一次启动EC2实例时,这一切都会发生。

IIS错误:

  

HTTP错误503.该服务不可用。

注意:一旦我以管理员身份登录到VM并等待几分钟,问题就会自动消失而不做任何事情。

0 个答案:

没有答案