Pregunta

Estoy usando este código para mi LinkButton para descargar un archivo cuando hace clic en él. Recientemente obtuve este problema, necesito una ruta virtual.

Me gustaría redirigir a C:\inetpub\wwwroot

 string filepath = Server.MapPath("...");           
 FileInfo myfile = new FileInfo(filepath);

Así que no sé qué poner en server.mappath () porque si pongo / irá a la base de mis documentos de carpeta y no en

¿Fue útil?

Solución

Si necesita servir archivos de otra parte de su sistema, entonces la mejor manera de hacerlo es crear un directorio virtual.

En IIS derecha, haga clic en su sitio web, haga clic en 'Agregar directorio virtual'. Dale un nombre y apunte donde sea que lo necesite. Por ejemplo, nuevo directorio virtual llamado 'archivos' apuntando a 'c: inetpub wwwroot archivos'.

Luego, desde su sitio, puede hacer referencia a estos archivos utilizando

/files/filename.txt <- el /archivos/ vinculará a su directorio virtual.

Entonces, por supuesto, debe asegurarse de tener sus permisos configurados correctamente para leer estos archivos, pero lo dejaré para usted.

Otros consejos

Actualmente ves una carpeta debajo de tu My Documents Debido a que está ejecutando/depurando en la carpeta de su proyecto, probablemente utilizando el servidor de desarrollo o iisexpress.

Tan pronto como implementa su sitio en una carpeta en C:\Inetpub, la MapPath devolverá esa carpeta.

Pero, como medida de seguridad, no puede devolver una carpeta más alta (en el árbol) como la carpeta raíz de su aplicación.

Si necesita eso, debe eliminar las carpetas de la ruta devuelta usted mismo. Puedes usar System.IO.Path para eso.

No se le permite moverse desde su raíz. La raíz significa la carpeta raíz de la aplicación. Si lo está intentando, es una violación de seguridad.

Entonces, si desea ir a la raíz de la aplicación que puede usar Server.MapPath("~");

Server.MapPath("~"); 

le dará raíz de aplicación web actual.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top