【问题标题】:Enable 32 bit IIS Application Pool c# [duplicate]启用 32 位 IIS 应用程序池 c# [重复]
【发布时间】:2016-11-23 15:41:54
【问题描述】:

我正在制作一个在 IIS 上创建多个应用程序池和 Web 的应用程序。

我需要在其中一个中启用 32 位应用程序。

如何以编程方式进行?

【问题讨论】:

标签: c#


【解决方案1】:

您没有指定 IIS 版本。 对于旧的,可以使用 DirectoryServices,如下所述: https://msdn.microsoft.com/en-us/library/ms525598%28v=vs.90%29.aspx?f=255&MSPPError=-2147217396

如果我没记错的话,32 位的属性应该是“Enable32BitAppOnWin64”。

对于 IIS 7+,您应该使用 Microsoft.Web.Administration 命名空间,如下所述: https://www.iis.net/learn/manage/scripting/how-to-use-microsoftwebadministration

这是一个托管 API。检查发布的参考资料或进行一些实验。

此外,如果您安装了 IIS 7 兼容的 IIS Metabase Compatibility,那么第一个解决方案也应该可以工作。 (不适用于较新的系统)

使用 DirectoryServices 的示例:

var appPool = new DirectoryEntry(string.Format("IIS://{0}/w3svc/apppools/DefaultAppPool", Environment.MachineName));
            //Integrated mode
            appPool.InvokeSet("ManagedPipelineMode", new object[] { 0 });
            appPool.InvokeSet("MaxProcesses", new object[] { 1 });
            //Enable 32-bit Applications
            appPool.InvokeSet("Enable32BitAppOnWin64", new object[] { true });

            appPool.CommitChanges();

【讨论】:

  • 你发给我的帖子我看了好几遍都没有找到解决办法。
  • 用示例更新了帖子。看看吧
猜你喜欢
  • 2013-01-04
  • 2023-01-31
  • 1970-01-01
  • 2020-07-28
  • 1970-01-01
  • 2016-02-02
  • 2012-03-28
  • 2012-04-27
  • 1970-01-01
相关资源
最近更新 更多