有什么区别Server.MapPath()和HostingEnvironment.MapPath()?相比Server.MapPath()有什么优势HostingEnvironment.MapPath()吗?
Server.MapPath()
HostingEnvironment.MapPath()
我最初的问题是当HttpContext不存在时,我在服务器上映射文件路径,并且无法将Server变量从传递Global.asax给我的方法。
HttpContext
Server
Global.asax
我使用HostingEnvironment.MapPath()它,因为它不需要HttpContext。这两种方法在任何情况下都会产生不同的结果吗?
Server.MapPath()最终调用HostingEnvironment.MapPath(),但它创建VirtualPath具有特定选项的对象:
VirtualPath
VirtualPath传递给的对象的HostingEnvironment.MapPath()构造如下: VirtualPath.Create(path, VirtualPathOptions.AllowAllPath|VirtualPathOptions.AllowNull);
VirtualPath传递给的对象的HostingEnvironment.MapPath()构造如下:
VirtualPath.Create(path,
VirtualPathOptions.AllowAllPath|VirtualPathOptions.AllowNull);
编辑 :实际上,唯一的区别是您可以将null传递给Server.MapPath(),但不允许传递给HostingEnvironment.MapPath()