我很确定我的 WCF URL 重写规则在我的 Web.config 文件中正确编码:
<rewrite>
<rules>
<rule name="RemoveSVC" stopProcessing="true">
<match url="MyWebSvc/([a-zA-Z]+)-svc/(.*)" />
<action type="Rewrite" url="MyWebSvc/{R:1}.svc/{R:2}" appendQueryString="true" logRewrittenUrl="true" />
</rule>
</rules>
</rewrite>
重写规则似乎在“测试模式...”小部件中起作用。例如:
http://localhost/MyWebSvc/thinga-svc/majigs
被正确映射到:
{R-1} thinga
{R-2} majigs
我希望将 URL 重写为:
http://localhost/MyWebSvc/thinga.svc/majigs
但是,当我尝试从浏览器测试 URL 时,这似乎很简单:
http://localhost/MyWebSvc/thinga.svc/majigs
有效,但是
http://localhost/MyWebSvc/thinga-svc/majigs
似乎没有被重写,我得到一个 404 响应代码。我是否必须将规则配置为使用其他设置触发?