在WCF中想使用Server.Map获取当前服务发布目录的绝对路径。可是在调试时却发现:
“System.Web.HttpContext.Current.Server.MapPath("..." + filename);”
“当没有开启ASP.NET相容模式时(aspNetCompatibilityEnabled="true"),WCF不支持HttpContext, HttpApplication,大部分文章都建议修改<serviceHostingEnvironment aspNetCompatibilityEnabled="true">使WCF可使用ASP.NET传统做法。”
最后有两种解决方法:
string t1 = System.Web.HttpContext.Current.Server.MapPath("~");//以上写法在WCF未开aspNetCompatibilityEnabled时, //会因HttpContext.Current == null发生错误
string t2 = System.Web.Hosting.HostingEnvironment.MapPath("~");
//以上写法在WCF中使用没有问题
但以上两种方法在单元测试里始终为NULL返回
第三种方法:
var rootDirectory =