c# - ¿Cuál es la diferencia entre Server.MapPath y HostingEnvironment.MapPath?
asp.net (2)
¿Hay alguna diferencia entre Server.MapPath()
y HostingEnvironment.MapPath()
? ¿ Server.MapPath()
tiene alguna ventaja sobre HostingEnvironment.MapPath()
?
Mi problema original fue mapear la ruta del archivo en un servidor cuando el HttpContext
no está presente y no puedo pasar una variable del Server
de Global.asax
a mi método.
HostingEnvironment.MapPath()
porque no necesita HttpContext
. ¿Hay alguna situación en la que estos dos métodos den resultados diferentes?
Server.MapPath()
finalmente llama a HostingEnvironment.MapPath()
, pero crea un objeto VirtualPath
con opciones específicas:
El objeto
VirtualPath
pasado aHostingEnvironment.MapPath()
se construye así:
VirtualPath.Create(path, VirtualPathOptions.AllowAllPath|VirtualPathOptions.AllowNull);
Editar : en realidad, la única diferencia es que puede pasar nulo a Server.MapPath()
, pero no a HostingEnvironment.MapPath()
Server.MapPath()
requiere un HttpContext
. HostingEnvironment.MapPath
no lo hace.