Devo utilizzare Server.MapPath()
per combinare alcuni percorsi di file che memorizzo nello web.config
.Come posso utilizzare Server.MapPath() da global.asax?
Tuttavia, poiché Server.MapPath()
si basa sull'attuale HttpContext (credo), non riesco a farlo. Quando provo ad usare il metodo, anche se è "disponibile", ottengo la seguente eccezione:
Il funzionamento del server non è disponibile in questo contesto.
C'è un altro metodo che può mappare una directory relativa radice web come ~/App_Data/
al percorso fisico completo, come C:\inetpub\wwwroot\project\App_data\
?
Eventuali avvertimenti a questa tecnica? –
No. Se si attiva Reflector, si noterà che Server.MapPath e Request.MapPath chiamano in ultima istanza VirtualPath.MapPath che in definitiva chiama HostingEnvironment.MapPath. Finiscono tutti nello stesso posto. HostingEnvironment.MapPath elimina l'uomo medio. –
+1 questo ha risolto un progetto open source che stava funzionando per me, quindi ho appena smesso di inizializzare a causa di HttpContext.Current.Server che si attiva per non avere un contesto per qualche motivo. Passando a questo rimettilo in navigazione. –