Ответ 1
С загруженным модулем WebAdministration попробуйте это в созданном вами пуле:
Set-ItemProperty IIS:\AppPools\<pool_name> managedRuntimeVersion v4.0
Я хочу посмотреть, как я могу использовать командлет IIS PowerShell New-WebAppPool, чтобы указать версию используемой .NET Framework. В настоящее время по умолчанию используется v2.0, однако я использую MVC, и это не сработает, потому что это функция v4.0. Мы действительно хотим, чтобы каждый сайт имел свой собственный пул приложений, и нам кажется, что мы должны создавать эти пулы вручную из-за невозможности их настройки через script. Есть ли способ автоматизировать это?
Я боюсь, что ответ будет "вы не можете", потому что документация не предлагает никаких параметров для настройки, и Google становится приземистым; это создает у меня впечатление, что только настройка сайтов по сценарию приемлема, и что-то о настройке пулов приложений просто "не сделано". Я не могу себе представить, почему нет - если вы автоматизируете одну большую часть процесса, почему вы не можете автоматизировать другую основную часть?
Любой, кто мог бы понять, как это сделать с помощью PowerShell, очень поможет мне.
С загруженным модулем WebAdministration попробуйте это в созданном вами пуле:
Set-ItemProperty IIS:\AppPools\<pool_name> managedRuntimeVersion v4.0
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
}
}
}
Вы можете загрузить деталь script из как установить пул приложений IIS для указания версии .NET Framework