2009-11-16 24 views
13

Hola, estoy desarrollando una aplicación web ASP.net. Necesito encontrar la ubicación actual (física) del sitio web (o el directorio bin que contiene los ensamblajes).ASP .net ubicación física actual

He intentado usar Directory.GetCurrentDirectory() y eso me devuelve el directorio temporal de ASP .net.

Realmente no me gusta la idea de incluir un entorno para la ruta absoluta en mi archivo de configuración de la aplicación (eww!)

Cualquier ayuda sería muy apreciada! :)

Conclusión:

que debería haber dado un poco de contexto de por qué me gustaría que la ruta del archivo físico. Gracias a todos por sus prontas respuestas a la pregunta :)

Estoy usando XSL-FO para .net (la biblioteca FO.net) para generar un PDF. Incorporación de imágenes en FO requiere una ruta absoluta para ser dada:

<fo:external-graphic src="C:\MyWebsite\images\image1.jpg" /> 

Lo que tenía que hacer era establecer el directorio actual en el sitio web (o directorio bin), lo que permitiría al procesador XSL FO saber por dónde encuentra la imagen

Respuesta

33

Usted necesita System.Web.HttpRuntime.BinDirectory (ruta física a la carpeta bin ) y System.Web.HttpRuntime.AppDomainAppPath (ruta física a la carpeta de la aplicación ASP.NET de nivel superior).

+0

Gracias Gonzalo, que funciona muy bien en mi situación. :) – Russell

+0

Sí, gracias por mostrar estas dos referencias :) – Chau

5

Depende de exactamente lo que quiere hacer con la ruta, pero el enfoque habitual es Server.MapPath(). Por ejemplo:

YourControl.src = Server.MapPath("~/images/image1.jpg"); 

Devolverá la ruta física del archivo especificado.

+1

Hola Rick, gracias MapPath es un método útil a tener en cuenta, sin embargo, no encaja realmente con mi situación. Estoy a punto de actualizar mi pregunta con más detalles sobre por qué dar un contexto, lo siento, debería haber hecho esto en primer lugar. Gracias por tu ayuda :) – Russell