web-dev-qa-db-fra.com

Comment définir la version de .NET Framework lors de l'utilisation de New-WebAppPool?

Je cherche à voir comment je peux utiliser la IIS Cmdlet PowerShell New-WebAppPool pour spécifier la version de la .NET Framework à utiliser. Actuellement, il utilise par défaut la v2.0, mais j'utilise MVC, et cela ne fonctionnera pas car c'est une fonctionnalité de la v4.0. Nous voulons vraiment que chaque site ait son propre pool d'applications, et il semble que nous doit créer ces pools manuellement en raison de l'impossibilité de les configurer via un script. Existe-t-il un moyen d'automatiser cela?

Je crains que la réponse ne soit "vous ne pouvez pas", parce que le documentation ne semble pas offrir de paramètres pour le configurer, et Google tourne le squat; cela me donne l'impression que seule la configuration de sites de manière scriptée est acceptable, et que la configuration des pools d'applications n'est tout simplement "pas effectuée". Je ne peux pas imaginer pourquoi - si vous automatisez une grande partie du processus, pourquoi ne pouvez-vous pas automatiser l'autre grande partie?

Quiconque pourrait avoir un aperçu de la façon de procéder via PowerShell m'aiderait grandement.

61
Matt DiTrolio

Avec le module WebAdministration chargé, essayez ceci sur un pool que vous avez créé:

Set-ItemProperty IIS:\AppPools\<pool_name> managedRuntimeVersion v4.0
103
Keith Hill
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 un script détaillé à partir de comment définir le IIS pool d'applications pour spécifier la version du .NET Framework

1
frank tan