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()