Asp.net mvc xdt:Transform=";插入“;不为<;重写>;在<;system.webServer>;

Asp.net mvc xdt:Transform=";插入“;不为<;重写>;在<;system.webServer>;,asp.net-mvc,asp.net-mvc-4,web.config-transform,xdt-transform,web-config,Asp.net Mvc,Asp.net Mvc 4,Web.config Transform,Xdt Transform,Web Config,我在web.config的live配置中编写了以下转换 my web.config中没有任何元素 转换根本不起作用。我的所有其他转换(替换elmah和连接字符串)都可以正常工作。如果看不到源文件,很难给出明确的答案 在web.config文件中,必须有/configuration/system.webServer元素才能使转换工作。如果没有,则没有要插入/configuration/system.webServer/rewrite元素的元素 如果这没有帮助,请至少发布web.config和转

我在web.config的live配置中编写了以下转换


my web.config中没有任何元素


转换根本不起作用。我的所有其他转换(替换elmah和连接字符串)都可以正常工作。

如果看不到源文件,很难给出明确的答案

在web.config文件中,必须有/configuration/system.webServer元素才能使转换工作。如果没有,则没有要插入/configuration/system.webServer/rewrite元素的元素


如果这没有帮助,请至少发布web.config和转换文件的结构。另外,我建议您安装SlowCheetah VS扩展,它非常适合对转换进行故障排除/预览。

我发现xdt:Locator和xdt:Transform仍然可以在元素上工作,即使Visual Studio仍然生成警告消息(未声明“”属性)


我遇到了与OP相同的问题。我在一堆其他元素上使用转换,没有问题。问题的存在并非如此。
<system.webServer>
    <rewrite>
        <rules>
            <clear />
            <rule name="Service Only Request Blocking Rule 1" stopProcessing="true" xdt:Locator="Match(name)" xdt:Transform="Replace">
                <match url=".*" />
                <conditions>
                    <add input="{URL}" pattern="\/address\/search\/.*$" />
                </conditions>
                <action type="CustomResponse" statusCode="403" statusReason="Forbidden: Access is denied." statusDescription="You do not have permission to complete this operation." />
            </rule>
        </rules>
    </rewrite>
</system.webServer>