Answers:
Server.MapPath()
最终调用HostingEnvironment.MapPath()
,但它创建VirtualPath
具有特定选项的对象:
VirtualPath
传递给的对象HostingEnvironment.MapPath()
是这样构造的:VirtualPath.Create(path, VirtualPathOptions.AllowAllPath|VirtualPathOptions.AllowNull);
编辑:实际上,唯一的区别是您可以将null传递给Server.MapPath()
,但不允许传递给HostingEnvironment.MapPath()
HostingEnvironment.MapPath()
保持理智。(+1)
Server.MapPath("myFolder")
可以正常工作,但是要与HostingEnvironment获得相同的结果,我必须使用HostingEnvironment.MapPath("~/myFolder")
。
Server.MapPath()
需要一个HttpContext
。HostingEnvironment.MapPath
才不是。
System.Web
这样它们才能与自托管OWIN环境一起使用吗?