The following quick SDK sample demonstrates how to list and change the managed runtime version of application pools programatically in IIS 7.
[VB]
Imports System Imports Microsoft.Web.Administration Public Class AppPoolSample Shared manager As ServerManager = New ServerManager() ' Main application processing Public Shared Sub Main(ByVal args As String()) ' Get the apppool to change Dim iPool As Integer = GetAppPool() ' Get the framework version desired Dim rtVersion As String = GetVersion() ' Set the apppool runtime Dim poolToSet As ApplicationPool = manager.ApplicationPools(iPool) Console.WriteLine( "Setting application pool '{0}' to runtime version: {1}...", _ poolToSet.Name, rtVersion) poolToSet.ManagedRuntimeVersion = rtVersion ' Commit the changes and recycle the application pool manager.CommitChanges() poolToSet.Recycle() Console.WriteLine("Your changes have been committed.") End Sub ' Prompts the user to select an application pool Public Shared Function GetAppPool() As Integer Dim pool As String = String.Empty Dim iPool As Integer = 0 While (Not Integer.TryParse(pool, iPool)) Console.WriteLine("Available ApplicationPools: Managed runtime version") Dim i As Integer For i = 0 To manager.ApplicationPools.Count - 1 Step i + 1 Dim appPool As ApplicationPool = manager.ApplicationPools(i) Console.WriteLine("{3}{0,3}.{3}{1}: {2}", i + 1, _ appPool.Name, appPool.ManagedRuntimeVersion, vbTab) Next Console.Write("{0}Choose an application pool to change: ", vbCrLf) pool = Console.ReadLine() End While Return iPool - 1 End Function ' Prompts a user to select the version of runtime they would like ' the application pool to use Public Shared Function GetVersion() As String Dim rtVersion As String = String.Empty Dim iVersion As Integer = 0 While (Not Integer.TryParse(rtVersion, iVersion)) Console.WriteLine("{0} 1.{0}Framework version 1.0", vbTab) Console.WriteLine("{0} 2.{0}Framework version 1.1", vbTab) Console.WriteLine("{0} 3.{0}Framework version 2.0", vbTab) Console.Write("Choose the new managed runtime version: ") rtVersion = Console.ReadLine() End While Select Case iVersion Case 1 rtVersion = "v1.0" Case 2 rtVersion = "v1.1" Case 3 rtVersion = "v2.0" End Select Return rtVersion End Function End Class
[C#]
using System; using Microsoft.Web.Administration; public class AppPoolSample { static ServerManager manager = new ServerManager(); // Main application processing public static void Main(string[] args) { // Get the apppool to change int iPool = GetAppPool(); // Get the framework version desired string rtVersion = GetVersion(); // Set the apppool runtime ApplicationPool poolToSet = manager.ApplicationPools[iPool]; Console.WriteLine( "Setting application pool '{0}' to runtime version: {1}...", poolToSet.Name, rtVersion); poolToSet.ManagedRuntimeVersion = rtVersion; // Commit the changes and recycle the application pool manager.CommitChanges(); poolToSet.Recycle(); Console.WriteLine("Your changes have been committed."); } // Prompts the user to select an application pool public static int GetAppPool() { string pool = String.Empty; int iPool = 0; while ((!int.TryParse(pool, out iPool)) || (iPool > manager.ApplicationPools.Count || iPool <= 0)) { Console.WriteLine( "Available ApplicationPools: Managed runtime version"); for (int i = 0; i <= manager.ApplicationPools.Count - 1; i++) { ApplicationPool appPool = manager.ApplicationPools[i]; Console.WriteLine("t{0,3}.t{1}: {2}", i + 1, appPool.Name, appPool.ManagedRuntimeVersion); } Console.Write("rnChoose an application pool to change: "); pool = Console.ReadLine(); } return iPool -1; } // Prompts a user to select the version of runtime they would like // the application pool to use public static string GetVersion() { string rtVersion = String.Empty; int iVersion = 0; while ((!int.TryParse(rtVersion, out iVersion)) || (iVersion > 3 || iVersion < 1)) { Console.WriteLine("rnt 1.tFramework version 1.0"); Console.WriteLine("t 2.tFramework version 1.1"); Console.WriteLine("t 3.tFramework version 2.0"); Console.Write("Choose the new managed runtime version: "); rtVersion = Console.ReadLine(); } switch (iVersion) { case 1: rtVersion = "v1.0"; break; case 2: rtVersion = "v1.1"; break; case 3: rtVersion = "v2.0"; break; } return rtVersion; } }