53

Je cherche à voir comment je peux utiliser la Cmdlet IIS PowerShell New-WebAppPool pour spécifier la version du .NET Framework à utiliser. Actuellement, il est par défaut à la version 2.0, mais j'utilise MVC, et cela ne fonctionnera pas parce que c'est une fonctionnalité de la version 4.0. Nous voulons vraiment que chaque site ait son propre pool d'applications, et il semble que nous devions créer ces pools manuellement en raison de l'impossibilité de les configurer via un script. Y a-t-il un moyen d'automatiser cela? J'ai peur que la réponse soit "vous ne pouvez pas", parce que le documentation ne semble pas offrir de paramètres pour le paramétrer, et Google est en train de monter squat; cela me donne l'impression que seule la configuration de sites d'une manière scriptée est acceptable, et que quelque chose à propos de la configuration des pools d'applications est juste "non fait". Je ne peux pas imaginer pourquoi pas - si vous automatisez une partie importante du processus, pourquoi ne pouvez-vous pas automatiser l'autre partie majeure? Toute personne qui pourrait avoir un aperçu sur la façon de faire cela via PowerShell m'aiderait énormément.Comment définir la version .NET Framework lors de l'utilisation de New-WebAppPool?

Répondre

90

Avec le module WebAdministration chargé essayer sur une piscine que vous avez créé:

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

Il y a une liste de propriétés définissables ici: 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  
    } 
    } 
} 

Vous pouvez télécharger script en détail de how to set the IIS Application Pool to specify version of the .NET Framework

Questions connexes