2011-09-23 46 views
0

我在IIS 7如下应用的URL重写规则:WCF Web服务消除SVC扩展增加.SVC全部分机

模式:^([0-9A-ZA-Z - ] + )/([0-9a-zA-Z-./()]+)

RewriteUrl:{R 1}的.svc/{R:2}

这工作完美当我打电话我的服务如此:http://mysite/site/myservice/input/params

我面临的问题是所有其他链接到我的项目中的HTML文件似乎已附有.SVC,例如验证码不起作用:

<的link rel =“样式”类型=“文/ CSS的” href =“样式表/样式表的.css” />

当我尝试浏览到URL在Web浏览器中我收到一条错误信息如下:

资源无法找到: 请求的URL:/网站/样式表* .svc */stylesheet.css

IIS似乎正确地删除svc时它存在,但添加它时,它不存在的情况下。

任何想法??

回答

0

您所描述的内容实际上是给定了重写规则定义的正确行为。请记住,规则基本上说,对于任何传入的URL与模式^([0-9a-zA-Z-]+)/([0-9a-zA-Z-./()]+)相匹配,请重写它,以便.svc被追加到第1组。

显然,那不是你想要的。因此,您需要确保重写仅适用于某些网址,即您的服务电话。

我建议将所有.svc文件放在专用的子文件夹中,例如, “服务”,并更改规则,像这样:

^services/([0-9a-zA-Z-]+)/([0-9a-zA-Z-./()]+) 

这样,只有服务URL将被改写,而所有其他人将不会被触及,因为他们没有模式匹配任何更长的时间。

+0

谢谢,工作过一种享受!....对于任何人在这篇文章中绊倒我还修改了RewriteUrl:services/{R:1} .svc/{R:2} – KSoza

相关问题