我在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>
。
答案 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元素的属性。容易犯错。