发布时web.config转换不起作用

时间:2014-07-02 09:51:17

标签: asp.net-mvc-3 publish web-config-transform

我有一个包含多个项目的解决方案,转换在其他项目中工作,但不适用于此项目。可能是什么原因?

该项目是MVC 4应用程序

解决方案的配置管理器显示,当解决方案配置为LIVE时,它应该使用项目的LIVE配置。

有一个Web.config,Web.Live.config,Web.Stage.config

在Web.Live.config中我有这段代码:

<?xml version="1.0" encoding="utf-8"?>

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">

  <system.web>
    <compilation debug="false" xdt:Transform="SetAttributes"></compilation>
  </system.web>

  <system.webServer>
    <rewrite>
      <rules>
        <clear />
        <rule name="Redirect to https" stopProcessing="true">
          <match url="(.*)" />
          <conditions>
            <add input="{HTTPS}" pattern="off" ignoreCase="true" />
          </conditions>
          <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

我将其发布到我的Web服务器,确保配置设置为Live。

服务器上的Web配置不包含转换。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我已经解决了这个问题,在这种情况下我似乎必须将xdt:Transform="Insert"添加到<rewrite>标记。

我不知道为什么我需要这样做,因为转换后的配置文件的默认模板包含插入代码的标记,没有这样的属性可以正常工作......