У меня есть ряд правил перезаписи для многих вещей, которые я делал в IIS7, например, удаление конечных косых черт, канонических URL-адресов, строчных букв и т. Д. IIS изменил мой web.config, и на сайте все работает нормально, как и должно. Но в Visual Studio web.config открывающая инструкция
подчеркнута синим, а в нижней части VS говорится, что элемент system.webServer имеет недопустимый дочерний элемент. «переписать» . Но вот как это сделал 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>
в конце.
Обновленная схема здесь исправила это для меня.
http://ruslany.net/2009/08/visual-studio-xml-intellisense-for-url-rewrite-1-1/
Убедитесь, что вы изменили сценарий для VS2010:
ruslany ответил 20 октября 2009 года в 7:10 вечера #
@Gene: Это потому, что кэш схемы XML расположен в другом месте в VS2010 , Можете ли вы открыть UpdateSchemaCache.js и заменить эту строку:
var vs9CommonTools = shell.ExpandEnvironmentStrings («% VS90COMNTOOLS%»);
с этой строкой:
var vs9CommonTools = shell.ExpandEnvironmentStrings («% VS100COMNTOOLS%»);
После этого попробуйте запустить скрипт и посмотреть, поможет ли это.
Тег Rewrite является свойством элемента web.config system.webServer, а не элемента system.web. Легкая ошибка.