元素“system.webServer”具有无效的子元素“rewrite”。我应该解决这个问题,如何解决?

Posted

技术标签:

【中文标题】元素“system.webServer”具有无效的子元素“rewrite”。我应该解决这个问题,如何解决?【英文标题】:Element 'system.webServer' has invalid child element 'rewrite'. Should I fix this, and how? 【发布时间】:2012-03-06 01:15:03 【问题描述】:

对于我在 IIS7 中所做的许多事情,我有许多重写规则,例如删除尾部斜杠、规范 URL、小写字母等。 IIS 更改了我的 web.config,并且网站上的一切正常,就像它应该的那样。但是在 Visual Studio web.config 中,开头的<rewrite> 语句带有蓝色下划线,并且在 VS 的底部,它说 元素 'system.webServer' 具有无效的子元素 'rewrite'。但这就是 IIS 的实现方式......我没有手动执行此操作。我应该关心这个 VS 错误,还是应该保持原样,因为它正在按应有的方式工作?

这是我的 web.config 的一个示例:

    <system.webServer>
    <rewrite>         <-------------------- this is underlined in squiggly blue
        <rules>
            <rule name="RemoveASPX" enabled="true" stopProcessing="true">
                <match url="(.*)\.aspx" />
                <action type="Redirect" url="R:1" />
                <conditions logicalGrouping="MatchAll">
                    <add input="URL" pattern="(.*)/default.aspx" negate="true" />
                    <add input="URL" pattern="(.*)/admin/*" negate="true" />
                    <add input="URL" pattern="(.*)/desktopmodules/*" negate="true" />
                </conditions>
            </rule>

还有大约 5 或 6 条其他规则,最后是结束 &lt;/system.webServer&gt;

【问题讨论】:

The element > system.webServer' has invalid child > element 'rewrite' 的可能重复项 (还有一个与之相关的欺骗候选人) Aakash,我没有在我的 web.config 文件中的任何其他地方看到 system.Webserver。我应该寻找其他东西吗? 嗯,看起来实际上是 asp.net, url rewrite module and web.config 这就是你需要的东西。 我的意思是......它在网站上运行良好;也许我不应该担心 Visual Studio 给我的错误...感谢 Aakash 的帮助! 【参考方案1】:

这里更新的架构为我解决了这个问题。

http://ruslany.net/2009/08/visual-studio-xml-intellisense-for-url-rewrite-1-1/

确保为 VS2010 更改脚本:

ruslany 于 2009 年 10 月 20 日晚上 7:10 回复#

@Gene: 这是因为 XML 模式缓存位于 VS2010中的不同位置。你能打开 UpdateSchemaCache.js 并替换这一行:

var vs9CommonTools = shell.ExpandEnvironmentStrings(“%VS90COMNTOOLS%” );

用这一行:

var vs9CommonTools = shell.ExpandEnvironmentStrings( “%VS100COMNTOOLS%”);

然后尝试运行脚本,看看是否有帮助。

【讨论】:

感谢您的提示!为我解决了问题。 对于 Visual Studio 2012,请改用 blog.vanmeeuwen-online.nl/2013/04/…【参考方案2】:

VisualStudio 2015 确实支持 &lt;rewrite&gt; 标签,但仅适用于 .Net 4.0 及更高版本。

使用 VS2015 升级 3 测试。

【讨论】:

【参考方案3】:

Rewrite 标记是 web.config system.webServer 元素的属性,而不是 system.web 元素的属性。容易出错。

【讨论】:

以上是关于元素“system.webServer”具有无效的子元素“rewrite”。我应该解决这个问题,如何解决?的主要内容,如果未能解决你的问题,请参考以下文章

命名空间“...”中的元素“...”具有无效的子元素,即使模式中存在子元素

元素“entityFramework”具有无效的子元素“提供者”。预期的可能元素列表:“上下文”

映射 hbm 文件时出现错误“命名空间中的元素 'class' 具有无效的子元素 'set'”

解决URL路径包含+等特殊符号,编码也无效的办法

Web.config设置system.webServer

无法识别的配置节“system.webServer”