Ich habe einige RESTful-Dienste, die in einem reinen WCF-Kontext ausgeführt werden (d. H. Die ASP.NET-Kompatibilität ist nicht aktiviert, und daher ist kein HttpContext.Current
-Objekt verfügbar).Was ist das WCF-Äquivalent von HttpContext.Current.Request.RawUrl?
Die URLs auf die Dienste werden zu Beginn des Antrags neu geschrieben ein mit IHttpModule
(die an diesem Punkt eine haben HttpContext
und schreibt es HttpContext.Current.RewritePath
verwenden) aus der URL, um loszuwerden, Dinge wie die .svc
Erweiterung.
Ich muss jedoch auf die ursprüngliche URL zugreifen, die von innerhalb der WCF-Infrastruktur angefordert wurde. Gibt es eine Entsprechung zu HttpContext.Current.Request.RawUrl
auf den OperationContext
oder WebOperationContext
Klassen überall? Wenn Sie WebOperationContext.Current.IncomingRequest.UriTemplateMatch.RequestUri
verwenden, wird die neu geschriebene URL zurückgegeben und nicht die ursprüngliche URL.
Gute Antwort nach dem Titel der Frage (Sprich mit Google-Suche Perspektive) – Sami
ich versuchte System.ServiceModel.Web.WebOperationContext.Current.IncomingRequest.UriTemplateMatch.RequestUri, OperationContext.Current.RequestContext.RequestMessage.Headers.To und OperationContext.Current.IncomingMessageHeaders.To, die einzige das funktioniert OperationContext.Current.Channel.LocalAddress.Uri – rob