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.
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.
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.
With the WebAdministration module loaded try this on a pool that you've created:
Set-ItemProperty IIS:\AppPools\<pool_name> managedRuntimeVersion v4.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 } } }
You can download detail script from how to set the IIS Application Pool to specify version of the .NET Framework
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With