我正在尝试使用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并等待几分钟,问题就会自动消失而不做任何事情。