Server.MapPath no funciona
-
02-10-2019 - |
Pregunta
Estoy intentando acceder a archivos en un directorio virtual creado I en IIS por primera vez, pero estoy consiguiendo resultados extraños.
SO: Windows XP Pro
IIS: 5,1
Plataforma de desarrollo: Visual Studio 2008
Idioma: C #
Virtual Directory Nombre: portal
Ruta de acceso local: C: \ digital_communications_report_portal
Por defecto Ruta Local Website: c: \ inetpub \ wwwroot
Me puede descargar el archivo en http: //localhost/portal/testFile.xlsx sin ningún problema.
Trato de cualquiera de éstos
string realFilename = Server.MapPath(ResolveUrl("~/portal/testFile.xlsx"));
string realFilename = Server.MapPath(ResolveUrl("localhost/portal/testFile.xlsx"));
y conseguir "C: \ Documents and Settings \ jjohnson \ Mis documentos \ Visual Studio 2008 \ sitios de Internet \ ClientSite \ localhost \ portal \ testFile.xlsx", que es mi ruta del proyecto con la ruta virtual dio una palmada en el final y no es una ruta válida. Trato de tomar la tilde o localhost y me sale un "Error al asignar la ruta '/portal/testFile.xlsx'." excepción.
¿Alguna idea de lo que estoy haciendo mal?
Solución
Si no me equivoco, Server.MapPath(ResolveUrl("~/relative/path/to/file"))
no es lo que quiere. Se producirá un /rooted/path/to/file
que cuando se pasa a Server.MapPath()
no dará lugar a una ubicación válida.
En lugar de ello basta con utilizar Server.MapPath("~/relative/path/to/file");
Actualizar
El problema que está experimentando se debe al hecho de que va a incluir el nombre del directorio virtual ( "portal") en su dirección URL relativa. Su dirección URL relativa no tiene que especificar el nombre del directorio virtual, sólo la ruta de acceso al archivo deseado con relación a la raíz de la aplicación.