У нас есть ситуация, когда нам нужно явно ограничить 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
определение раздела. Может ли кто-нибудь указать мне здесь правильное направление?
Спасибо
с помощью поставщика 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 для текущего веб-приложения, «но вы можете изменить его для любого файла .config, указав путь»
System.Configuration.Configuration configuration = WebConfigurationManager.OpenWebConfiguration("");
System.Web.Configuration.ProcessModelSection processModelSection =
(ProcessModelSection)configuration.GetSection("system.web/processModel");
processModelSection.MaxAppDomains = 1;
надеюсь, что это поможет, но мне пришлось предположить несколько вещей, так как требования к вопросу нуждаются в дополнительных разъяснениях.
Вы пробовали редактировать файл machine.config напрямую? Каждый раз, когда у меня возникают проблемы с файлом machine.config, я просто редактировал файл напрямую.