这篇MSDN 文章说:
HttpContext: Current is always null when accessed from within a WCF service. Use RequestContext instead.
我想要做的是从我的 IIS 托管的 WCF 服务中加载一些 XSD 文件。问题是,我无法弄清楚如何像在任何旧的香草 ASP.NET 网站中那样执行 Server.MapPath(),例如:
HttpContext.Current.Server.MapPath(schemaUri);
在 IIS 托管的 WCF 服务中使用 RequestContext 的等效方法是什么?
这些模式位于服务应用程序根目录下的“Schemas”目录中。使用 web.config 中的自定义配置部分引用它们,如下所示:
<schemas>
<add uri="~/Schemas/foo.xsd" xmlNamespace="http://foo.bar/types" />
</schemas>
我试图像这样加载:
var schemaUri = HttpContext.Current.Server.MapPath(schema.Uri);
在普通的 ASP.NET 网站中工作正常,而不是在 IIS 托管的 WCF 服务中。