2012-04-30 12 views
9

Este MSDN article dice:Cómo MapPath con RequestContext en servicio WCF

HttpContext: Current is always null when accessed from within a WCF service. Use RequestContext instead.

Lo que estoy tratando de hacer es cargar algunos archivos XSD en IIS de mi servicio alojado de WCF. El problema es que no puedo encontrar la manera de hacer un Server.MapPath() como lo haría en cualquier sitio web de edad vainilla ASP.NET, algo así como:

HttpContext.Current.Server.MapPath(schemaUri);

¿Cuál sería la forma equivalente mediante RequestContext en un servicio WCF alojado en IIS?

Los esquemas se encuentran en un directorio "Esquemas" en la raíz de la aplicación de servicio. Están referenciados utilizando una sección de configuración personalizada en el web.config como esto:

<schemas> 
    <add uri="~/Schemas/foo.xsd" xmlNamespace="http://foo.bar/types" /> 
</schemas> 

y yo estaba tratando de cargar la siguiente manera:

var schemaUri = HttpContext.Current.Server.MapPath(schema.Uri);

que funciona muy bien desde dentro de un ASP normales El sitio web .NET, simplemente no es un servicio WCF alojado en IIS.

Respuesta

26
+1

Hoooo! ¡Dulce! ¡Eso incluso funciona en un proyecto UnitTest! ¡Gracias un montón! – Didaxis

+0

De nada :) –

+0

hostingEnvironment.MapPath da error de compilación –