53

Ich suche, wie ich den IIS PowerShell-Cmdlet New-WebAppPool verwenden kann, um die Version von .NET Framework anzugeben, die verwendet werden soll. Momentan ist es standardmäßig v2.0, aber ich benutze MVC, und das wird nicht funktionieren, weil das eine v4.0-Funktion ist. Wir möchten wirklich, dass jeder Standort seinen eigenen Anwendungspool hat, und es scheint, dass wir diese Pools manuell erstellen müssen, weil wir sie nicht per Skript konfigurieren können. Gibt es eine Möglichkeit, dies zu automatisieren?Wie stelle ich die .NET Framework-Version bei Verwendung von New-WebAppPool ein?

Ich fürchte, die Antwort wird sein "Sie können nicht", weil die documentation scheint keine Parameter für die Einstellung zu bieten, und Google ist auf Kniebeugen; Es gibt mir den Eindruck, dass nur das Konfigurieren von Websites in einer Skriptsprache akzeptabel ist, und etwas über das Konfigurieren von Anwendungspools ist einfach "nicht erledigt". Ich kann mir unmöglich vorstellen, warum nicht - wenn Sie einen großen Teil des Prozesses automatisieren, warum können Sie den anderen wichtigen Teil nicht automatisieren?

Jeder, der etwas über PowerShell wissen könnte, würde mir sehr helfen.

Antwort

90

Mit dem WebAdministration Modul geladen dies auf einen Pool versuchen, die Sie erstellt haben:

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

herunterladen Es gibt eine Liste von einstellbaren Eigenschaften hier: 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  
    } 
    } 
} 

Sie Detail-Skript von how to set the IIS Application Pool to specify version of the .NET Framework