asp.net - studio - publicar sitio web en iis
¿Para qué se utiliza la carpeta App_Data en Visual Studio? (9)
Al crear una nueva aplicación ASP.NET en Visual Studio, se crean un par de archivos y carpetas automáticamente. Una de esas carpetas se llama App_Data
.
Además, al publicar un sitio web al seleccionar la opción del menú Build->Publish
una casilla de verificación, está disponible Include files from the App_Data folder
.
¿Estoy en lo cierto al suponer que los archivos puestos en este archivo y sus subcarpetas no serán accesibles a través de la web? Por ejemplo, ¿sería seguro poner en esa carpeta los recursos que solo pretendo que use el código de la aplicación?
¿Cuál es el verdadero uso previsto de la carpeta App_Data
?
EDITAR:
Gracias por todas las respuestas. De las respuestas recibidas hasta ahora me interesan principalmente dos puntos mencionados:
- App_Data es esencialmente un punto de almacenamiento para el almacén de datos basado en archivos
- No debe ser visible en la web y es un lugar para que la aplicación web almacene y lea datos de
¿Podría alguien especificar cómo se garantiza el "no visible por la web"? ¿Puedo confiar en ese hecho cuando realizo una implementación estándar, o también debo verificar algunas configuraciones de IIS en el servidor?
En la situación en que tengo un conjunto de archivos PDF, quiero que solo se pueda acceder desde la aplicación. ¿Sería la carpeta App_Data el lugar correcto para usar, o debería crear una carpeta separada y configurar IIS manualmente para asegurarme de que no sea accesible por la Web?
App_Data es esencialmente un punto de almacenamiento para almacenes de datos basados en archivos (a diferencia de una tienda de base de datos del servidor SQL, por ejemplo). Algunos sitios simples lo utilizan para el contenido almacenado como XML, por ejemplo, donde los cargos de alojamiento para un DB son caros.
De la documentación sobre la estructura de carpetas de proyectos web de ASP.NET en MSDN:
Puede mantener los archivos de su proyecto web en cualquier estructura de carpeta que sea conveniente para su aplicación. Para facilitar el trabajo con su aplicación, ASP.NET reserva ciertos nombres de archivos y carpetas que puede usar para tipos específicos de contenido.
App_Data contiene archivos de datos de aplicación que incluyen archivos de base de datos .mdf, archivos XML y otros archivos del almacén de datos. La carpeta App_Data es utilizada por ASP.NET para almacenar la base de datos local de una aplicación, como la base de datos para mantener la información de membresía y rol. Para obtener más información, consulte Introducción a la membresía y comprensión de la gestión de roles.
Para obtener más información, consulte Introducción a la membresía y comprensión de la gestión de roles .
El uso previsto de App_data es almacenar datos de la aplicación para el proceso web para acceder. No debe ser visible en la web y es un lugar para que la aplicación web almacene y lea datos.
El uso previsto para App_Data es almacenar el archivo relacionado con la base de datos. Por lo general, archivos .mdf de SQL Server Express.
Es un lugar para colocar una base de datos incrustada, como Sql Server Express, Access o SQLite.
La carpeta App_Data es una carpeta, cuyo proceso de trabajo asp.net también tiene derechos de sistema de archivos, pero no se publica a través del servidor web.
Por ejemplo, lo usamos para actualizar un CSV local de un formulario de contacto . Si el método preferido de correos electrónicos falla o se requiere una consulta de la fuente de datos, los archivos App_Data están allí.
No es ideal, pero es una buena recuperación.
La intención principal es mantener el (los) archivo (s) de la base de datos de su aplicación.
Y no, esto no será accesible desde la web de manera predeterminada.
Lo usamos como un área de almacenamiento temporal para archivos csv cargados. Una vez cargado, un método ajax procesa y elimina el archivo.
en IIS, resalte la máquina, haga doble clic en "Solicitar filtro", abra la pestaña "Segmentos ocultos". "App_Data" aparece allí como una carpeta restringida. Sí, sé que este hilo es muy viejo, pero esto sigue siendo aplicable.