Server.MapPath和HostingEnvironment.MapPath有什么区别?
Server.MapPath()和HostingEnvironment.MapPath()有什么区别吗? Server.MapPath()比HostingEnvironment.MapPath()有什么优势吗?
我原来的问题是当HttpContext不存在时,我不能将一个Servervariables从Global.asax传递给我的方法映射服务器上的文件path。
我使用HostingEnvironment.MapPath()因为它不需要HttpContext 。 这两种方法会有不同的结果吗?
Server.MapPath()最终调用HostingEnvironment.MapPath() ,但它创build一个具有特定选项的VirtualPath对象:
传递给
HostingEnvironment.MapPath()的VirtualPath对象是这样构造的:VirtualPath.Create(path, VirtualPathOptions.AllowAllPath|VirtualPathOptions.AllowNull);
编辑 :在现实中,唯一的区别是,您可以将null传递给Server.MapPath() ,但不传递给HostingEnvironment.MapPath()
Server.MapPath()需要一个HttpContext 。 HostingEnvironment.MapPath不。