我正在使用IIS Powershell管理单元从头开始配置新的Web应用程序.我是PS的新手.由于PS无法识别ManagedPipelineMode枚举,因此以下脚本无法正常工作.如果我将值更改为0,它将起作用.我怎样才能让PS理解这一点.我尝试了Add-Type cmdlet并且还加载了Microsoft.Web.Administration程序集而没有任何成功,现在注释了这些行.
如何让这个PS脚本与枚举一起使用?
#Add-Type -AssemblyName Microsoft.Web.Administration
#[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Administration")
Import-Module WebAdministration
$AppPoolName = 'Test AppPool'
if ((Test-Path IIS:\apppools\$AppPoolName) -eq $false) {
Write-Output 'Creating new app pool ...'
New-WebAppPool -Name $AppPoolName
$AppPool = Get-ChildItem iis:\apppools | where { $_.Name -eq $AppPoolName}
$AppPool.Stop()
$AppPool | Set-ItemProperty -Name "managedRuntimeVersion" -Value "v4.0"
$AppPool | Set-ItemProperty -Name "managedPipelineMode" -Value [Microsoft.Web.Administration.ManagedPipelineMode]::Integrated
$AppPool.Start()
}
Run Code Online (Sandbox Code Playgroud)
错误消息是:
Set-ItemProperty:[Microsoft.Web.Administration.ManagedPipelineMode] :: Integrated不是Int32的有效值.
man*_*lds 11
它期望一个整数,即使底层属性是类型ManagaedPipelineMode
.你可以在下面做:
$AppPool | Set-ItemProperty -Name "managedPipelineMode" -Value ([int] [Microsoft.Web.Administration.ManagedPipelineMode]::Classic)
Run Code Online (Sandbox Code Playgroud)
PS:
代替
$AppPool = Get-ChildItem iis:\apppools | where { $_.Name -eq $AppPoolName}
Run Code Online (Sandbox Code Playgroud)
你可以做:
$AppPool = Get-Item iis:\apppools\$AppPoolName
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5261 次 |
最近记录: |