WCF REST Does Not Contain All of the Relative File Path
- by Brandon
I have a RESTful WCF 3.5 endpoint as such:
System.Security.User.svc
This is supposed to represent the namespace of the User class and is desired behavior by our client.
I have another endpoint I created for testing called:
Echo.svc
I am writing an overridden IHttpModule and in my module, I follow what almost everyone does by doing:
string path = HttpContext.Current.Request.AppRelativeCurrentExecutionFilePath;
If I make a call to:
http://localhost/services/Echo/test
My path variable has a value of '~/echo/test'
However, when I make a call to:
http://localhost/services/System.Security.User/test
My path variable has a value of '~/system.security.user'
In my 2nd situation, it is stripping off the '/test' on the end of any endpoint that contains multiple periods. This is undesired behavior and the only solution I have found to fixing this is some ugly string manipulation using the property which does contain the complete URL path:
string rawPath = HttpContext.Current.Request.RawUrl;
This returns '/services/system.security.user/test'.
Does anyone know why my first situation does not return the rest of the URL path for endpoints that contain multiple periods in the name?