我正在尝试在 Azure 中部署的网站的根目录中配置 Web 应用程序的 serviceAutoStartEnabled 和 serviceAutoStartProvider 属性。如果我了解自动启动过程,可以为单个网站下的特定 Web 应用程序设置这些属性。
我在 web 角色启动期间(在启动任务中获得提升的权限之后)执行一个 powershell 脚本来执行 web 管理任务,如下所示:
write-host "Begin RoleStart.ps1"
import-module WebAdministration
Add-WindowsFeature NET-WCF-HTTP-Activation45,NET-WCF-TCP-Activation45,NET-WCF-Pipe-Activation45
$listenerService = Get-WmiObject win32_service -filter "name='NetPipeActivator'"
$listenerService.ChangeStartMode("Automatic")
$listenerService.StartService()
$WebRoleSite = (Get-WebSite "*web*")
$WebRoleSiteName = $WebRoleSite.Name
$WebRoleAppPool = $WebRoleSite.ApplicationPool
New-ItemProperty "IIS:/Sites/$WebRoleSiteName" -name bindings -value @{protocol="net.pipe";bindingInformation="*"}
Set-ItemProperty "IIS:/Sites/$WebRoleSiteName" -Name EnabledProtocols 'http,net.pipe'
Set-ItemProperty -Path "IIS:\AppPools\$WebRoleAppPool" -Name startMode -Value AlwaysRunning
write-host "End RoleStart.ps1"
这会根据需要使用 AlwaysRunning 属性设置应用程序池,但我仍然需要为应用程序特定的 serviceAutoStartEnabled 和 serviceAutoStartProvider 属性提供新值。
我知道我可以使用 Get-WebApplication 来获取应用程序并设置这两个属性,但是当我运行以下 powershell 命令时,我没有看到根 ("/") 应用程序的应用程序:
(Get-WebApplication "*") | format-list *
那么如何使用 webadministration cmdlet 为根应用程序设置这两个属性呢?