C# · 12月 27, 2021

c# – 如何在WCF服务中使用RequestContext MapPath

这个 MSDN article说:

HttpContext:当从WCF服务访问时,Current始终为空.改用RequestContext

我想要做的是从我的IIS托管WCF服务加载一些XSD文件.问题是,我不知道如何做一个Server.MapPath()像我在任何旧的香草ASP.NET网站,像:

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服务.

解决方法 你可以使用 HostingEnvironment.MapPath.