启用32位IIS应用程序池c#

时间:2016-11-23 15:41:55

标签: c#

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

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

我该如何以编程方式执行此操作?

1 个答案:

答案 0 :(得分: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元数据库兼容性,那么第一个解决方案也应该可行。 (不适用于较新的系统)

使用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();