В чем разница между сервером.MapPath и HostingEnvironment.MapPath?
есть ли разница между Server.MapPath()
и HostingEnvironment.MapPath()
? Делает Server.MapPath()
есть какие-то преимущества над HostingEnvironment.MapPath()
?
моей первоначальной проблемой было отображение пути к файлу на сервере, когда HttpContext
нет и я не могу передать Server
переменной от Global.asax
к моему методу.
Я HostingEnvironment.MapPath()
вместо этого, так как ему не нужно HttpContext
. Существуют ли ситуации, когда эти два метода дадут разные результаты?
2 ответов
Server.MapPath()
в конце концов вызывает HostingEnvironment.MapPath()
, но он создает VirtualPath
объект с определенными параметрами:
The
VirtualPath
объект, переданныйHostingEnvironment.MapPath()
построен следующим образом:VirtualPath.Create(path, VirtualPathOptions.AllowAllPath|VirtualPathOptions.AllowNull);
редактировать: на самом деле, единственная разница в том, что вам разрешено передавать null в Server.MapPath()
, а не HostingEnvironment.MapPath()