如何在WCF服务中使用RequestContext MapPath

Did*_*xis 9 .net c# asp.net wcf xsd

这篇MSDN文章说:

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

我要做的是从我的IIS托管WCF服务加载一些XSD文件.问题是,我无法弄清楚如何在任何旧的vanilla ASP.NET网站中执行Server.MapPath(),例如:

HttpContext.Current.Server.MapPath(schemaUri);

在IIS托管的WCF服务中使用RequestContext的等效方法是什么?

模式位于服务应用程序根目录下的"模式"目录中.它们是使用web.config中的自定义配置部分引用的,如下所示:

<schemas>
    <add uri="~/Schemas/foo.xsd" xmlNamespace="http://foo.bar/types" />
</schemas>
Run Code Online (Sandbox Code Playgroud)

我试图像这样加载:

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

从普通的ASP.NET网站中可以正常工作,而不是IIS托管的WCF服务.

Nic*_*ler 35

您可以使用HostingEnvironment.MapPath.

  • Hoooo!甜!这甚至适用于UnitTest项目!谢谢你! (2认同)