53

Sto cercando di vedere come posso utilizzare il Cmdlet di IIS PowerShell New-WebAppPool per specificare la versione di .NET Framework da utilizzare. Attualmente, per impostazione predefinita v2.0, tuttavia sto usando MVC, e questo non funzionerà perché è una funzionalità v4.0. Vogliamo davvero che ogni sito abbia il proprio pool di applicazioni e sembra che dobbiamo creare manualmente tali pool a causa dell'impossibilità di configurarli tramite script. C'è un modo per automatizzare questo?Come si imposta la versione di .NET Framework quando si utilizza New-WebAppPool?

Ho paura che la risposta sia "non puoi", perché il documentation non sembra offrire alcun parametro per impostarlo e Google sta diventando squat; mi dà l'impressione che solo l'impostazione di siti in modalità script sia accettabile e che qualcosa sulla configurazione di Pool di applicazioni non sia "fatto". Non riesco a immaginare perché no - se stai automatizzando una parte importante del processo, perché non puoi automatizzare l'altra parte principale?

Chiunque abbia qualche idea su come farlo tramite PowerShell mi aiuta molto.

risposta

90

Con il modulo WebAdministration caricato provare questo su un pool che hai creato:

Set-ItemProperty IIS:\AppPools\<pool_name> managedRuntimeVersion v4.0 
+23

C'è un elenco di proprietà impostabili qui: http : //msdn.microsoft.com/en-us/library/aa347554 (v = VS.90) .aspx –

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  
    } 
    } 
} 

È possibile scaricare i dettagli script da how to set the IIS Application Pool to specify version of the .NET Framework

Problemi correlati