繁体   English   中英

如何在Windows Azure上的IIS 7上更改应用程序池的属性Enable32BitAppOnWin64?

[英]How to change property Enable32BitAppOnWin64 of Application Pool on IIS 7 on Windows Azure?

我有第三方库的项目,这个库是为32位系统而制作的。 但我的项目将在Windows Azure上运行,我必须在Windows Azure运行我的应用程序之前将应用程序池的属性Enable32BitAppOnWin64设置为true。 有什么方法可以设置此属性(以编程方式配置)? 如果我只能以编程方式执行此操作,那么我必须在代码中更改它吗? 我可以在WebRole的OnStart事件中这样做吗?

我只是必须这样做。 我使用启动任务来更改此设置。

我创建了一个批处理文件并添加了以下命令:

%windir%\system32\inetsrv\appcmd set config -section:applicationPools -applicationPoolDefaults.enable32BitAppOnWin64:true

然后我添加了批处理文件作为启动脚本运行到azure配置。 它没有任何问题。

有关启动任务的更多信息,请参阅此处: http//msdn.microsoft.com/en-us/library/gg456327.aspx

在调用powershell脚本的启动批处理文件中添加上述命令后,该脚本以某种方式失败,我的云服务无法启动。 我最终更改了WebRole.cs文件,它在Azure云服务(Windows Server 2012 R2)中工作,如下所示:

using Microsoft.Web.Administration;
namespace KDC.UserWeb.RoleEntryPoint
{
    {
        public override bool OnStart()
        {
            Enable32BitAppPool();
            return base.OnStart();
        }
        {
            base.Run();
        }

    public static void Enable32BitAppPool();
    {
        ServerManager serverManager = new ServerManager();
        ApplicationPoolCollection applicationPoolCollection = serverManager.ApplicationPools;
        foreach (ApplicationPool applicationPool in applicationPoolCollection)
        {
            if( !String.IsNullOrEmpty(applicationPool.Name) && applicationPool.Name[0]  != '.' )
            {
                serverManager.ApplicationPools[applicationPool.Name].Enable32BitAppOnWin64 = true;
                serverManager.CommitChanges();
            }
        }
    }

}

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM