在调试模式下删除web.config文件中的部分

bza*_*fir 6 web-config config-transformation web.config-transform

我有一个asp.net应用程序,它必须在SSL下运行,并且它在web.config中定义了一些重写规则来完成此任务.

<!--file web.config -->
....
</system.webServer>
  <rewrite>
    <rules configSource="webrewrite.config" />
  </rewrite>
</system.webServer>


<!--file web.config -->
<rules>
  ....    
  <rule name="HTTP to HTTPS redirect" stopProcessing="true">
    <match url="(.*)" />
    <conditions>
      <add input="{HTTPS}" pattern="off" />
    </conditions>
    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
  </rule>
  ....
</rules>
Run Code Online (Sandbox Code Playgroud)

但是,在开发模式(使用本地Web服务器或IIS Express)中,我不想使用SSL.所以我希望能够使用web.config转换来删除一个或多个重写规则(但不是全部)

小智 8

如果您想删除整个部分以供开发配置使用

<system.webServer>
   <rewrite xdt:Transform="Remove" >
   </rewrite>
 </system.webServer>
Run Code Online (Sandbox Code Playgroud)


bza*_*fir 7

我通过使用删除变换解决了这个问题,如下所示

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  ....
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="RulaNameToRemove"
          xdt:Transform="Remove"
          xdt:Locator="Match(name)" >
        </rule>
      </rules>
    </rewrite>    
  </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)