53

Szukam sposobu użycia narzędzia IIS PowerShell Cmdlet New-WebAppPool w celu określenia wersji systemu .NET Framework do użycia. Obecnie domyślnie jest v2.0, jednak używam MVC, a to nie zadziała, ponieważ jest to funkcja v4.0. Naprawdę chcemy, aby każda witryna posiadała własną pulę aplikacji i wydaje się, że musimy utworzyć te pule ręcznie z powodu niemożności ich skonfigurowania za pomocą skryptu. Czy istnieje sposób automatyzacji tego?Jak ustawić wersję .NET Framework podczas korzystania z New-WebAppPool?

Obawiam się, że odpowiedź brzmi "nie możesz", ponieważ documentation nie wydaje się oferować żadnych parametrów do ustawienia, a Google pojawia się przysadzisty; daje mi to wrażenie, że tylko tworzenie stron w sposób skryptowy jest akceptowalne, a coś na temat konfigurowania pul aplikacji jest po prostu "nie zrobione". Nie mogę sobie wyobrazić, dlaczego nie - jeśli automatyzujesz większą część procesu, dlaczego nie możesz zautomatyzować innej ważnej części?

Każdy, kto może mieć pewien wgląd w to, jak to zrobić za pomocą PowerShell, bardzo by mi pomógł.

Odpowiedz

90

Dzięki modułowi WebAdministration ładowane spróbować to na basenie, które zostały utworzone:

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

Jest lista właściwości ustawianych tutaj: 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  
    } 
    } 
} 

można pobrać szczegółowy scenariusz z how to set the IIS Application Pool to specify version of the .NET Framework