188 votes

Quelle est la différence entre Server.MapPath et HostingEnvironment.MapPath?

Quelle est la différence entre Server.MapPath() et HostingEnvironment.MapPath()? N' Server.MapPath() ont des avantages par rapport HostingEnvironment.MapPath()?

Mon premier problème a été de cartographie le chemin d'accès au fichier sur un serveur lors de l' HttpContext n'est pas présent et je ne peut pas passer une Server variable Global.asax ma méthode.

J'ai utilisé HostingEnvironment.MapPath() au lieu de cela, car il n'a pas besoin d' HttpContext. Existe-il des situations où ces deux méthodes donnent des résultats différents?

219voto

Philippe Leybaert Points 62715

Server.MapPath () appelle finalement HostingEnvironment.MapPath (), mais crée un objet VirtualPath avec des options spécifiques:

L'objet VirtualPath transmis à HostingEnvironment.MapPath () est construit comme suit:

 VirtualPath.Create(path, VirtualPathOptions.AllowAllPath|VirtualPathOptions.AllowNull);
 

Modifier : en réalité, la seule différence est que vous êtes autorisé à transmettre null à Server.MapPath (), mais pas à HostingEnvironment.MapPath ()

120voto

Mark Struzinski Points 11288

Server.MapPath() nécessite un HttpContext . HostingEnvironment.MapPath non.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X