Necesito usar Server.MapPath()
para combinar algunos archivos de ruta que almaceno en el web.config
.¿Cómo puedo usar Server.MapPath() desde global.asax?
Sin embargo, dado que Server.MapPath()
se basa en el HttpContext actual (creo), no puedo hacer esto. Al intentar usar el método, aunque está "disponible", recibo la siguiente excepción:
El funcionamiento del servidor no está disponible en este contexto.
¿Hay otro método que puede trazar un directorio raíz web relativa como ~/App_Data/
a la ruta física completa como C:\inetpub\wwwroot\project\App_data\
?
¿Tiene alguna advertencia sobre esta técnica? –
No. Si activa Reflector, notará que Server.MapPath y Request.MapPath finalmente llaman a VirtualPath.MapPath que finalmente llama a HostingEnvironment.MapPath. Todos terminan en el mismo lugar. HostingEnvironment.MapPath corta al intermediario. –
+1 esto solucionó un proyecto de código abierto que funcionaba para mí y luego dejó de inicializarse debido a que HttpContext.Current.Server explotó porque no tenía contexto por algún motivo. Cambiando a esto ponlo de nuevo para navegar sin problemas. –