2010-05-03 40 views
0

我有幾個REST風格的端點就像這樣:WCF 3.5 - 刪除SVC擴展 - 特殊

System.Security.Role.svc 
System.Security.User.svc 
etc. 

這意味着是一個命名空間,以便REST風格的URL看起來像:

/rest/{class namespace}/{actions} 

我已經嘗試了幾個例子,當我的端點有多個時段時,刪除SVC擴展,但似乎沒有任何工作。

我已經使用WCF REST Contrib包(http://wcfrestcontrib.codeplex.com/),本示例(http://www.west-wind.com/weblog/posts/570695.aspx)和另一個StackOverflow帖子(How to remove the ".svc" extension in RESTful WCF service?)進行了測試。

這個偉大的工程,當我的終點是這樣的:

Echo.svc 

它將正確刪除SVC擴展。

有關如何處理端點名稱中具有多個句點的端點的任何想法?

編輯: 經過進一步的測試,我發現它是失敗的,因爲只要你做的事:

string path = HttpContext.Current.Request.AppRelativeCurrentExecutionFilePath; 

如果端點包含多個句,它的端點後剝去一切導致所有標準的IHttpModule的失敗。

例子:

如果我打電話http://localhost/services/Echo/test,我親戚的應用程序文件路徑有一個返回值:

~/echo/test 

不過,如果我撥打電話的http://localhost/services/System.Security.User/test,然後我親戚的應用程序文件路徑有返回值爲:

~/system.security.user 

我在這種情況下錯過了'/ test'結尾。

回答