我正在研究如何使用IIS New-WebAppPool来指定要使用的.NET框架的版本。目前,它默认是v2.0,但是我使用的是MVC,这不会起作用,因为这是v4.0的一个特性。我们真的希望每个站点都有自己的应用程序池,似乎我们必须手动创建这些池,因为无法通过脚本配置它们。有没有办法让这一切自动化呢?
我担心答案将是“你不能”,因为documentation似乎没有提供任何参数来设置它,而谷歌正在转向;它给我的印象是只以脚本方式设置站点是可以接受的,而关于配置应用程序池的一些事情就是“没有完成”。我无法想象为什么不--如果你要自动化流程的一个主要部分,为什么你不能自动化另一个主要部分呢?
任何可能对如何通过PowerShell做到这一点有一些见解的人都会对我有很大的帮助。
发布于 2010-11-20 05:00:59
加载WebAdministration模块后,在您创建的池中尝试执行以下操作:
Set-ItemProperty IIS:\AppPools\<pool_name> managedRuntimeVersion v4.0
发布于 2016-11-15 13:38:53
Import-Module WebAdministration
#Get all web sites
dir IIS:\Sites | ForEach-Object {
#Go to the app pools root
cd IIS:\AppPools\
if (!(Test-Path $_.Name -pathType container))
{
#Create the app pool and set .net framework version
$appPool = New-Item $_.Name
$appPool | Set-ItemProperty -Name "managedRuntimeVersion" -Value $IISAppPoolDotNetVersion
#Go to the web sites root
cd IIS:\Sites\
$iisApp = Get-Item $_.Name
$iisApp | Set-ItemProperty -Name "applicationPool" -Value $_.Name
}
else {
$dotNetVersion = (Get-ItemProperty $_.Name managedRuntimeVersion).Value
if ($dotNetVersion -ne $IISAppPoolDotNetVersion){
#Get the app pool and set .net framework version
$appPool = Get-Item $_.Name
$appPool | Set-ItemProperty -Name "managedRuntimeVersion" -Value $IISAppPoolDotNetVersion
}
}
}
您可以从how to set the IIS Application Pool to specify version of the .NET Framework下载详细脚本
发布于 2020-06-04 02:53:07
或者,可以在New-WebAppPool cmdlet的返回值上设置此属性。如果您还想更改其他属性,此方法会很有用。
对于v4.0池,它将如下所示:
Import-Module WebAdministration
$appPool = New-WebAppPool -Name Pool1
$appPool.managedRuntimeVersion = "v4.0"
$appPool | Set-Item
要将其设置为“No managed code”,您可以使用以下命令:
Import-Module WebAdministration
$appPool = New-WebAppPool -Name Pool2
$appPool.managedRuntimeVersion = ""
$appPool | Set-Item
https://stackoverflow.com/questions/4229082
复制相似问题