我在IIS7(Vista)上使用带有.NET 3.5的ASP.net和Microsoft的URL重写模块.
这意味着,我有一个
<system.webServer>
<rewrite>...</rewrite>
...
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
web.config中的部分,但我得到一个警告,在system.webServer中,不允许使用元素"rewrite".
如何配置我的系统允许(甚至可能有Intellisense)在web.config的重写部分?
谢谢Christoph
我在IIS7中做了很多重写规则,比如删除尾部斜杠,canonnical 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>
Run Code Online (Sandbox Code Playgroud)
大约有5或6个其他规则,然后在结束</system.webServer>时结束.
我正在尝试在VS 2012上使用带有MVC应用程序的url重写模块.我已经使用web平台4.0安装了模块,遵循Ruslan的博客文章,根据评论更新了他的js脚本(特别是Brant Burnett的最后一个) 10月19日,脚本执行成功.我检查了DotNetConfig.xsd,一切看起来都很好.
如果我打开IIS管理控制台,我会看到Url Rewrite模块,一切正常.
我创建一个简单的MVC解决方案(使用默认的主/帐户控制),当我添加了简单的ToLowerCase规则(也鲁斯兰的博客复制),我得到的标签和HTTP 500.19下的蓝色波浪线,如果我尝试执行.重启等等没有帮助.另外重要提一下我使用的是IIS Express 7.5.
在运行VS 2010的机器上,同样的程序对我很有用,url重写工作没有问题.
谁知道什么可能出错?进一步分析需要哪些信息?为什么intellisense工作和重写模块不被认可?