Comment puis-je utiliser Server.MapPath () de global.asax?
-
06-09-2019 - |
Question
Je dois utiliser Server.MapPath()
pour combiner certains chemin des fichiers que je stocke dans le web.config
.
Cependant, étant donné que Server.MapPath()
repose sur la HttpContext actuelle (je pense), je suis incapable de le faire. Lorsque vous essayez d'utiliser la méthode, même si son « disponible », je reçois l'exception suivante:
Fonctionnement du serveur ne sont pas disponibles dans ce contexte.
Y at-il une autre méthode qui peut mapper un répertoire racine web relatif tel que ~/App_Data/
sur le chemin physique complet tel que C:\inetpub\wwwroot\project\App_data\
?
La solution
Vous pouvez essayer System.Web.Hosting .HostingEnvironment.MapPath () .
Non HttpContext nécessaire.
Autres conseils
Utilisez AppDomain.CurrentDomain.BaseDirectory
parce que Context
peut retourner null !!
En cas Global.asax, utilisez le contexte objet :
context.Server.mappath ()
Contexte vous permet d'accéder également la collection de session, l'objet de la demande, l'objet de réponse. Très utile lorsque vous voulez enregistrer les erreurs, par exemple
Vous pouvez essayer HttpContext.Current.Server.MapPath ( "/") -. Voilà comment je l'ai mentionné auparavant dans les classes