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
VirtualPathpasado 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.