Server.MapPath和HostingEnvironment.MapPath有什么区别?
Server.MapPath()
和HostingEnvironment.MapPath()
有什么区别吗? Server.MapPath()
比HostingEnvironment.MapPath()
有什么优势吗?
我原来的问题是当HttpContext
不存在时,我不能将一个Server
variables从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
不。