web-dev-qa-db-ja.com

IIS 7-machine.configの構成セクションのallowDefinition属性を変更します

1つのWebサイトの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属性を更新する方法が見つかりません。誰かが私を指すことができますかここで正しい方向ですか?

ありがとう

3
scripni

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;

それがお役に立てば幸いですが、質問の要件をさらに明確にする必要があるため、いくつかのことを想定する必要がありました。

1
Jawad Al Shaikh

Machine.configファイルを直接編集してみましたか? machine.configファイルで問題が発生するたびに、ファイルを直接編集しました。

0
Techie Joe