IIS 7 - 更改 machine.config 中配置部分的 allowDefinition 属性

IIS 7 - 更改 machine.config 中配置部分的 allowDefinition 属性

我们遇到过需要明确限制system.web/processModel/maxAppDomains = 1某个网站的的情况。问题是system.web/processModel默认情况下只能在 machine.config 级别设置:

<configuration>
    <configSections>
        <sectionGroup name="system.web">
            <section name="processModel" allowDefinition="MachineOnly" />
        </sectionGroup>
   </configSections>
<configuration>

我知道这%windir%/system32/inetsvr/appcmd.exe可用于更新 IIS 配置设置,但我还没有找到更新部分定义allowDefinition属性的方法processModel。有人能给我指出正确的方向吗?

谢谢

答案1

使用 WMI 提供程序:

' SetAllowDefinition is a static method, you should call it by getting a class object, as in the following example  
Set oAnonAuth = oWebAdmin.Get("AnonymousAuthenticationSection")
oAnonAuth.SetAllowDefinition "MachineOnly"

根据我的理解,我认为您有兴趣将 AllowDefinition 设置为 [AppHostOnly] 或 [MachineToApplication] 值。

參考文獻:http://msdn.microsoft.com/en-us/library/bb386461(v=vs.90).aspx

注意:对 ProcessModelSection 类的更改仅当重新启动工作进程时才会生效,而不是在设置更改后立即生效。

我使用以下代码将 maxAppDomain=1 设置为当前 Web 应用程序“但您可以通过提供路径将其更改为任何 .config 文件”

System.Configuration.Configuration configuration = WebConfigurationManager.OpenWebConfiguration("");
            System.Web.Configuration.ProcessModelSection processModelSection =
                        (ProcessModelSection)configuration.GetSection("system.web/processModel");
            processModelSection.MaxAppDomains = 1;

希望这会有所帮助,但我不得不假设几件事,因为问题要求需要进一步澄清。

答案2

您是否尝试过直接编辑 machine.config 文件?每次我遇到 machine.config 文件问题时,我都会直接编辑该文件。

相关内容