我在web.config中设置了几个url重写规则。他们是:
<rewrite>
<rules>
<rule name="RedirectUserFriendlyURL1" stopProcessing="true">
<match url="^(.*)\.aspx$"/>
<conditions>
<add input="{REQUEST_METHOD}" pattern="^POST$" negate="true"/>
<add input="{QUERY_STRING}" pattern="^([^=&]+)=([^=&]+)$"/>
</conditions>
<action type="Redirect" url="{R:1}/{C:1}/{C:2}" appendQueryString="false"/>
</rule>
<rule name="RewriteUserFriendlyURL1" stopProcessing="true">
<match url="^(.*)/([^/]+)/([^/]+)/?$"/>
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
</conditions>
<action type="Rewrite" url="{R:1}.aspx?{R:2}={R:3}"/>
</rule>
<rule name="RedirectUserFriendlyURL2" stopProcessing="true">
<match url="^(.*)\.aspx$"/>
<conditions>
<add input="{REQUEST_METHOD}" pattern="^POST$" negate="true"/>
</conditions>
<action type="Redirect" url="{R:1}" appendQueryString="false"/>
</rule>
<rule name="RewriteUserFriendlyURL2" stopProcessing="true">
<match url="^(.*)$"/>
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
</conditions>
<action type="Rewrite" url="{R:1}.aspx"/>
</rule>
</rules>
</rewrite>
所有这些都很好,我很确定。但是,当我使用F5调试应用程序时,我收到错误“无法在Web服务器上启动调试。无法启动Asp.Net调试。”不知道为什么会这样。如果我使用Ctrl + F5在发布模式下运行它,效果非常好。谁能告诉我为什么会这样?如果我只是删除这些规则然后F5它,它也可以。我试图谷歌这个问题,并提出了一个链接。但它对我不起作用:
http://forums.asp.net/t/1649452.aspx/1
在上面的链接中,有人要求将表格从大写重命名为小写。挺滑稽的!并且有人要求改变项目类型以使用.Net framework 3.5
答案 0 :(得分:2)
只需将您的起始页设置为一个未被规则重写的页面。
如果这不起作用,请在规则中添加一些条件以排除脚本文件。 你可能也看看这个问题:
Adding IIS UrlRewrite seems to break debugging on local IIS server
答案 1 :(得分:0)