元素'system.webServer'具有无效的子元素'rewrite'。我应该解决这个问题吗?

时间:2012-02-14 16:50:12

标签: asp.net vb.net visual-studio visual-studio-2010 web-config

我在IIS7中做了很多重写规则,比如删除尾部斜杠,canonnical URL,小写字母等等。 IIS改变了我的web.config,一切都在网站上运行正常,就像它应该的那样。但是在Visual Studio web.config中,开始<rewrite>语句用蓝色加下划线,在VS的底部,它表示元素'system.webServer'具有无效的子元素'rewrite'< / strong>即可。但这就是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个其他规则,最后是结束</system.webServer>

3 个答案:

答案 0 :(得分:22)

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

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%”);

     

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

答案 1 :(得分:0)

VisualStudio 2015确实支持<rewrite>标记,但仅适用于.Net版本4.0及更高版本。

使用VS2015升级版3进行测试。

答案 2 :(得分:0)

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