我正在创建一个在IIS上创建多个应用程序池和Web的应用程序。
我需要在其中一个中启用32位应用程序。
我该如何以编程方式执行此操作?
答案 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();