Tengo algunos servicios RESTful ejecutándose en un contexto WCF puro (es decir, la compatibilidad ASP.NET no está habilitada, y por lo tanto no hay ningún objeto HttpContext.Current
disponible).¿Cuál es el equivalente de WCF de HttpContext.Current.Request.RawUrl?
Las direcciones URL de los servicios se vuelven a escribir en el inicio de la solicitud utilizando un IHttpModule
(que en ese momento tiene un HttpContext
y reescribe usando HttpContext.Current.RewritePath
) para deshacerse de cosas como la .svc
extensión de la URL.
Sin embargo, necesito acceder a la URL original que se solicitó dentro de la infraestructura de WCF. ¿Existe un equivalente a HttpContext.Current.Request.RawUrl
en las clases OperationContext
o WebOperationContext
en cualquier lugar? El uso de WebOperationContext.Current.IncomingRequest.UriTemplateMatch.RequestUri
devuelve la URL reescrita, no la original.
Buena respuesta de acuerdo con el título de la pregunta (diciendo con la perspectiva de búsqueda de google) – Sami
probé System.ServiceModel.Web.WebOperationContext.Current.IncomingRequest.UriTemplateMatch.RequestUri, OperationContext.Current.RequestContext.RequestMessage.Headers.To, y OperationContext.Current.IncomingMessageHeaders.To, el único que funciona es OperationContext.Current.Channel.LocalAddress.Uri – rob