Вопрос по asp.net, xsd, .net, c#, wcf – Как MapPath с RequestContext в службе WCF

9

этоСтатья MSDN говорит:

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

Я пытаюсь загрузить некоторые файлы XSD из моей службы WCF, размещенной на IIS. Проблема в том, что я не могу понять, как сделать Server.MapPath (), как на любом старом ванильном сайте ASP.NET, что-то вроде:

HttpContext.Current.Server.MapPath(schemaUri);

Каков будет эквивалентный способ использования RequestContext в службе WCF, размещенной на IIS?

Схемы расположены в «Схемах». каталог в корне приложения-службы. На них ссылаются с помощью пользовательского раздела конфигурации в файле web.config, например так:

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

И я пытался загрузить так:

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

Который прекрасно работает на обычном веб-сайте ASP.NET, но не на службе WCF, размещенной на IIS.

Ваш Ответ

1   ответ
33

Ты можешь использоватьHostingEnvironment.MapPath.

Добро пожаловать :)
Если вы перейдете по ссылке, вы найдете пространство имен для класса HostingEnvironment System.Web.Hosting
hostingEnvironment.MapPath выдает ошибку компиляции
Hoooo! Милая! Это даже работает в проекте UnitTest! Огромное спасибо! Didaxis

Похожие вопросы