创建使用.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