WCF 3.5 - Удалить расширение SVC - Особый случай - PullRequest
0 голосов
/ 03 мая 2010

У меня есть несколько конечных точек RESTful, таких как:

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

Это должно быть пространство имен, поэтому наши RESTful URL будут выглядеть так:

/rest/{class namespace}/{actions}

Я попробовал несколько примеров, чтобы удалить расширение SVC, когда моя конечная точка содержит несколько периодов, однако, похоже, ничего не работает.

Я протестировал пакет WCF REST Contrib (http://wcfrestcontrib.codeplex.com/), в этом примере (http://www.west -wind.com / weblog / posts / 570695.aspx ) и еще один пост StackOverflow ( Как удалить расширение ".svc" в службе RESTful WCF? ).

Это прекрасно работает, когда моя конечная точка выглядит примерно так:

Echo.svc

Правильно удалит расширение SVC.

Любые идеи о том, как обрабатывать конечные точки с несколькими периодами в имени конечной точки?

EDIT: После некоторого дальнейшего тестирования я обнаружил, что он терпит неудачу, потому что всякий раз, когда вы делаете:

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 в конце в этой ситуации.

1 Ответ

0 голосов
/ 13 августа 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...