Элемент 'system.webServer' имеет недопустимый дочерний элемент 'rewrite'. Должен ли я это исправить, и как? - PullRequest
23 голосов
/ 14 февраля 2012

У меня есть ряд правил перезаписи для многих вещей, которые я сделал в 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 других правил, затем закрытие </system.webServer> в конце.

Ответы [ 3 ]

22 голосов
/ 14 мая 2012

Обновленная схема здесь исправила это для меня.

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

Убедитесь, что вы изменили скрипт для VS2010:

ruslany ответил 20 октября2009 в 19:10 #

@ Gene: Это связано с тем, что кэш схемы XML находится в другом месте в VS2010.Можете ли вы открыть UpdateSchemaCache.js и заменить эту строку:

var vs9CommonTools = shell.ExpandEnvironmentStrings («% VS90COMNTOOLS%»);

с этой строкой:

var vs9CommonTools= shell.ExpandEnvironmentStrings («% VS100COMNTOOLS%»);

После этого попробуйте запустить скрипт и посмотреть, поможет ли это.

0 голосов
/ 03 мая 2019

Тег Rewrite является свойством элемента web.config system.webServer, а не элемента system.web. Легкая ошибка.

0 голосов
/ 06 марта 2017

VisualStudio 2015 поддерживает тег <rewrite>, но только для .Net версий 4.0 и выше.

Протестировано с обновлением VS2015 3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...