![IIS 7 - 更改 machine.config 中配置部分的 allowDefinition 属性](https://linux22.com/image/608325/IIS%207%20-%20%E6%9B%B4%E6%94%B9%20machine.config%20%E4%B8%AD%E9%85%8D%E7%BD%AE%E9%83%A8%E5%88%86%E7%9A%84%20allowDefinition%20%E5%B1%9E%E6%80%A7.png)
我们遇到过需要明确限制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 文件问题时,我都会直接编辑该文件。