我有幾個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'結尾。