创建使用.NET 4.0的应用程序池

我使用以下代码创建一个应用程序池:

var metabasePath = string.Format(@"IIS://{0}/W3SVC/AppPools", serverName); DirectoryEntry newpool; DirectoryEntry apppools = new DirectoryEntry(metabasePath); newpool = apppools.Children.Add(appPoolName, "IIsApplicationPool"); newpool.CommitChanges(); 

如何指定应用程序池应使用.NET Framework 4.0?

我从标签上看到你正在使用IIS7。 除非您绝对必须,否则请勿使用IIS6兼容性组件。 您首选的方法应该是使用Microsoft.Web.Administration托管API。

要使用此方法创建应用程序池并将.NET Framework版本设置为4.0,请执行以下操作:

 using Microsoft.Web.Administration; ... using(ServerManager serverManager = new ServerManager()) { ApplicationPool newPool = serverManager.ApplicationPools.Add("MyNewPool"); newPool.ManagedRuntimeVersion = "v4.0"; serverManager.CommitChanges(); } 

您应该添加对Microsoft.Web.Administration.dll的引用,该引用可以在以下位置找到:

%SYSTEMROOT%\System32\InetSrv

 newpool.Properties["ManagedRuntimeVersion"].Value = "v4.0"; 

将与Microsoft.Web.Administration.dll做同样的事情,但使用DirectoryEntry

 newPool.InvokeSet("ManagedPipelineMode", new object[] { 0 }); 

将使用DirectoryEntry切换到集成或经典管道模式。

其他答案在您的特定情况下更好,但通常请记住,您可以使用appcmd工具执行此操作: https : //technet.microsoft.com/en-us/library/cc731784%28v=ws.10 %29.aspx 。 特别:

appcmd add apppool /name: string /managedRuntimeVersion: string /managedPipelineMode: Integrated | Classic