小编典典

Server.MapPath和HostingEnvironment.MapPath有什么区别?

c#

有什么区别Server.MapPath()HostingEnvironment.MapPath()?相比Server.MapPath()有什么优势HostingEnvironment.MapPath()吗?

我最初的问题是当HttpContext不存在时,我在服务器上映射文件路径,并且无法将Server变量从传递Global.asax给我的方法。

我使用HostingEnvironment.MapPath()它,因为它不需要HttpContext。这两种方法在任何情况下都会产生不同的结果吗?


阅读 488

收藏
2020-05-19

共1个答案

小编典典

Server.MapPath()最终调用HostingEnvironment.MapPath(),但它创建VirtualPath具有特定选项的对象:

VirtualPath传递给的对象的HostingEnvironment.MapPath()构造如下:

VirtualPath.Create(path,

VirtualPathOptions.AllowAllPath|VirtualPathOptions.AllowNull);

编辑
:实际上,唯一的区别是您可以将null传递给Server.MapPath(),但不允许传递给HostingEnvironment.MapPath()

2020-05-19