【问题标题】:Create an application pool that uses .NET 4.0创建使用 .NET 4.0 的应用程序池
【发布时间】:2011-06-15 01:41:23
【问题描述】:

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

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?

【问题讨论】:

    标签: c# iis-7 directoryservices application-pool


    【解决方案1】:

    我从标签中看到您正在使用 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

    【讨论】:

    • 是的。我已经切换到 ServerManager。问题是我不知道 System.Web.Administration 的 DLL 位于何处。答案是%WinDir%\System32\InetSrv\Microsoft.Web.Administration.dll
    • Microsoft.Web.Administration 现在也可以作为 NuGet 包添加,而不是直接引用 dll
    • 没问题。它来自以下已删除的答案。 (而且一切都是 CC 许可的)
    • 嗨,Kev - 我认为您尚未添加 Nuget 部分。不过,我对这个答案投了赞成票:)
    【解决方案2】:
    newpool.Properties["ManagedRuntimeVersion"].Value = "v4.0";
    

    将执行与 Microsoft.Web.Administration.dll 相同的操作,但使用 DirectoryEntry

    还有

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-16
        • 2011-04-07
        • 2013-09-28
        • 1970-01-01
        • 2011-05-06
        • 1970-01-01
        相关资源
        最近更新 更多