La propiedad HttpContext.Current.Request.ApplicationPath
representa el directorio virtual en IIS o WebDev.WebServer.¿Puedo acceder al nombre del directorio virtual en global.asax.cs?
HttpContext.Current.Request.ApplicationPath evaluates to "/virtualdirectory"
Esto puede ser usado en conjunción con VirtualPathUtility
para hacer una ruta relativa de la raíz:
VirtualPathUtility.ToAbsolute("~/images/cat.jpg",
HttpContext.Current.Request.ApplicationPath)
// (this evaluates to "/virtualdirectory/images/cat.jpg")
En IIS6 y WebDev.WebServer la solicitud objeto es disponible en global.asax.cs
, pero se queja de que IIS7 no está disponible en el contexto actual. Por lo tanto, la segunda línea del código anterior funciona pero no en IIS7.
El problema es que necesito acceder al nombre del directroy virtual dentro de global.asax.cs
. Lo necesito para construir algunos caminos que se utilizan en CSS creado dinámicamente. ¿Hay alguna forma alternativa de acceder a este valor?
Editar: Este es el error que se obtiene en IIS 7 para llamar HttpContext.Current.Request
en global.asax.cs bajo Application_Start:
HttpException (0x80004005): Request is not available in this context]
System.Web.HttpContext.get_Request() +8789264
No entiendo la pregunta, HttpContext.Current está disponible en global.asax, ¿estás preguntando qué evento? –
@deviant - HttpContext.Current está disponible, pero HttpContext.Current.Request no lo está. He editado la publicación para incluir el error –