53

Estoy buscando ver cómo puedo usar el Cmdlet de IIS PowerShell New-WebAppPool para especificar la versión de .NET Framework que se usará. Actualmente, tiene el valor predeterminado v2.0, sin embargo, estoy usando MVC, y esto no funcionará porque esa es una característica v4.0. Realmente queremos que cada sitio tenga su propio grupo de aplicaciones, y parece que debemos crear esos grupos manualmente debido a la imposibilidad de configurarlos mediante un script. ¿Hay alguna forma de automatizar esto?¿Cómo configuro la versión de .NET Framework cuando uso New-WebAppPool?

Me temo que la respuesta será "no se puede", porque el documentation no parece ofrecer ningún parámetro para configurarlo, y Google está apareciendo en cuclillas; me da la impresión de que solo es aceptable configurar sitios de manera guionizada, y algo sobre la configuración de Grupos de aplicaciones simplemente "no está hecho". No puedo imaginar por qué no, si está automatizando una parte importante del proceso, ¿por qué no puede automatizar la otra parte principal?

Cualquiera que tenga alguna idea de cómo hacer esto a través de PowerShell me estaría ayudando mucho.

Respuesta

90

Con el módulo de carga WebAdministration probar esto en una piscina que se haya creado:

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

Hay una lista de propiedades configurables aquí: 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  
    } 
    } 
} 

Puede descargar guión detalle de how to set the IIS Application Pool to specify version of the .NET Framework

Cuestiones relacionadas