Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I set the .NET Framework Version when using New-WebAppPool?

I'm looking to see how I can use the IIS PowerShell Cmdlet New-WebAppPool to specify the version of the .NET Framework to use. Currently, it defaults to v2.0, however I am using MVC, and this will not work because that's a v4.0 feature. We really want each site to have its own Application Pool, and it seems we must create those pools manually due to the inability to configure them via script. Is there any way to automate this?

I'm afraid the answer is going to be "you can't," because the documentation doesn't appear to offer any parameters for setting it, and Google is turning up squat; it's giving me the impression that only setting up sites in a scripted manner is acceptable, and something about configuring Application Pools is just "not done." I can't possibly imagine why not - if you're automating one major part of the process, why can you not automate the other major part?

Anyone who might have some insight on how to do this via PowerShell would be helping me out greatly.

like image 439
Matt DiTrolio Avatar asked Nov 19 '10 20:11

Matt DiTrolio


People also ask

What is application pool configuration?

Because application pools allow a set of Web applications to share one or more similarly configured worker processes, they provide a convenient way to isolate a set of Web applications from other Web applications on the server computer.

What is application pool in asp net c#?

An application pool is a group of one or more URLs that are served by a worker process or set of worker processes. Application pools are used to separate sets of IIS worker processes that share the same configuration and application boundaries.


2 Answers

With the WebAdministration module loaded try this on a pool that you've created:

Set-ItemProperty IIS:\AppPools\<pool_name> managedRuntimeVersion v4.0 
like image 191
Keith Hill Avatar answered Sep 17 '22 12:09

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            }    } }  

You can download detail script from how to set the IIS Application Pool to specify version of the .NET Framework

like image 43
frank tan Avatar answered Sep 20 '22 12:09

frank tan