Comment puis-je utiliser Server.MapPath () depuis global.asax?

Je dois utiliser Server.MapPath() pour combiner certains fichiers que je stocke dans le web.config .

Cependant, étant donné que Server.MapPath() s’appuie sur le contexte HTTP actuel (je pense), je ne peux pas le faire. En essayant d’utiliser la méthode, même si elle est “disponible”, j’obtiens l’exception suivante:

Le fonctionnement du serveur n’est pas disponible dans ce contexte.

Existe-t-il une autre méthode permettant de mapper un répertoire relatif à la racine Web tel que ~/App_Data/ sur le chemin d’access physique complet tel que C:\inetpub\wwwroot\project\App_data\ ?

    Vous pouvez essayer System.Web.Hosting.HostingEnvironment.MapPath () .

    Aucun HttpContext requirejs.

    Utilisez AppDomain.CurrentDomain.BaseDirectory car le Context peut renvoyer null!

    Dans Global.asax, utilisez l’object contextuel :

    context.Server.mappath ()

    Le contexte vous permet d’accéder également à la collection de sessions, à l’object de requête, à l’object de réponse. Très utile lorsque vous souhaitez enregistrer des erreurs, par exemple

    Vous pouvez essayer HttpContext.Current.Server.MapPath (“/”) – C’est comme ça que je l’ai déjà référencé dans les classes.