Элемент 'system.webServer' имеет недопустимый дочерний элемент 'rewrite'. Должен ли я исправить это и как?
У меня есть ряд правил перезаписи для многих вещей, которые я делал в 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>
в конце.
Ответы
Ответ 1
Обновленная схема здесь исправила это для меня.
http://ruslany.net/2009/08/visual-studio-xml-intellisense-for-url-rewrite-1-1/
Убедитесь, что вы изменили script для VS2010:
ruslany ответил 20 октября 2009 года в 19:10 #
@Gene: Это связано с тем, что кэш схемы XML находится в другое место в VS2010. Вы можете открыть UpdateSchemaCache.js и замените эту строку:
var vs9CommonTools = shell.ExpandEnvironmentStrings( "% VS90COMNTOOLS%" );
с этой строкой:
var vs9CommonTools = shell.ExpandEnvironmentStrings( "% VS100COMNTOOLS%" );
После этого попробуйте запустить script и посмотрите, помогает ли это.
Ответ 2
VisualStudio 2015 поддерживает тег <rewrite>
, но только для .Net версий 4.0 и выше.
Протестировано с обновлением VS2015 3.
Ответ 3
Тег Rewrite является свойством элемента web.config system.webServer, а не элемента system.web. Легкая ошибка.