У меня есть конечная точка RESTful WCF 3.5 как таковая:
System.Security.User.svc
Предполагается, что оно представляет пространство имен класса User и является желаемым поведением нашего клиента.
У меня есть другая конечная точка, которую я создал для тестирования:
Echo.svc
Я пишу переопределенный IHttpModule, и в моем модуле я следую тому, что делают почти все:
string path = HttpContext.Current.Request.AppRelativeCurrentExecutionFilePath;
Если я позвоню:
http://localhost/services/Echo/test
Моя переменная пути имеет значение '~ / echo / test'
Однако, когда я звоню:
http://localhost/services/System.Security.User/test
Моя переменная пути имеет значение '~ / system.security.user'
В моей 2-й ситуации он удаляет '/ test' в конце любой конечной точки, которая содержит несколько периодов. Это нежелательное поведение, и единственное решение, которое я нашел, чтобы исправить это, - это некрасивые манипуляции со строками с использованием свойства, которое содержит полный путь URL:
string rawPath = HttpContext.Current.Request.RawUrl;
Возвращает '/services/system.security.user/test'.
Кто-нибудь знает, почему моя первая ситуация не возвращает остаток пути URL для конечных точек, которые содержат в имени несколько точек?