如何以编程方式从web.config中删除重写的设置

时间:2013-12-19 14:48:48

标签: c# iis-7 override

我在applicationHost.config中配置了重写规则,并在web.config中重写。 有没有办法通过Microsoft.Web.Administration API以编程方式删除覆盖? 例如,这是applicationHost.config中的测试规则:

<configuration>
    <location path="Default Web Site">
        <system.webServer>
            <rewrite>
                <rules>
                    <rule name="TestRuleA" enabled="true" stopProcessing="false">
                        <match url="A" />
                        <action type="Rewrite" url="A" />
                    </rule>
                </rules>
            </rewrite>
        </system.webServer>
    </location>
</configuration>

这是相同的规则,但在web.config中重写:

<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <remove name="TestRuleA" />
                <rule name="TestRuleA" enabled="true" stopProcessing="false">
                    <match url="A_MODIFIED" />
                    <conditions />
                    <serverVariables />
                    <action type="Rewrite" url="A" />
                </rule>
                <rule name="CUSTOM_RULE">
                    <match url="1" />
                    <action type="Rewrite" url="1" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

我想以编程方式删除网站级别的所有替换。 这是web.config中的预期结果:

<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                ... not test rule ...
                <rule name="CUSTOM_RULE">
                    <match url="1" />
                    <action type="Rewrite" url="1" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

我尝试使用RevertToParent,但它可以应用于整个部分,但我只需将其应用于我的重写规则。 有可能吗?

0 个答案:

没有答案