2011-09-23 57 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

相關問題