2009-02-09 23 views
132

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.¿Para qué se utiliza la carpeta App_Data en Visual Studio?

También al publicar un sitio web al seleccionar la opción de menú Build->Publish, se encuentra disponible una casilla de verificación 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 uso real previsto de la carpeta App_Data?

EDIT:

Gracias por todas las respuestas. De las respuestas recibidas hasta ahora Estoy interesado principalmente en dos puntos mencionados:

  1. App_Data is essentially a storage point for file-based data store
  2. It should not be viewable by the web and is a place for the web app to store and read data from

qué alguien ser capaz de especificar cómo "no visible para usuarios de la web" se garantiza el? ¿Puedo confiar en ese hecho cuando realizo la 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?

Respuesta

94

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.

+6

Gracias annakata por esta respuesta. Creo que el punto importante para agregar es que el contenido de App_Data no puede ser visto por la web como lo menciona JaredPar. y también como comentó "este comportamiento se puede modificar desde * .config httphandlers" – padn

+0

¿La carpeta app_data contiene las referencias a los servicios web locales? Mi aplicación web funciona bien en .net F5 ejecutar. Pero los servicios web no funcionan después del empaquetado y la implementación en ISS ... :( – bonCodigo

+0

También esta carpeta se utiliza para almacenar archivos de una base de datos local. –

13

Es un lugar para colocar una base de datos incrustada, como Sql Server Express, Access o SQLite.

+0

O cualquier otro dato que el sitio pueda usar como, por ejemplo, archivos XML (como una lista de estados/países/etc.) –

+1

¿La base de datos es solo entonces? ¿Puedo decir algo, p. Ej. Los archivos pdf en los que quiero acceder pensaban solo en el código, por ejemplo, usando el método Response.TransmitFile? – padn

+4

cualquier cosa - el concepto de datos no especifica un tipo de archivo o formato – annakata

21

El uso previsto de App_data es almacenar los datos de la aplicación para el proceso web para el acceso. No debe ser visible en la web y es un lugar para que la aplicación web almacene y lea datos.

+5

No solo "no debería", cualquier cosa en esa carpeta está bloqueada para que no sea atendida por ASP.NET –

+0

@John, tenía la impresión de que había formas de " cambiar "ese comportamiento". Sí, definitivamente malo para hacerlo, pero no sé qué tan común o no es – JaredPar

+0

¿Cómo se logra eso "no visible"? ¿La carpeta App_data tendría una configuración específica en IIS? – padn

5

La intención principal es para guardar el archivo de base de datos de la aplicación (s) en.

Y no esto no será accesible desde la web por defecto.

5

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.

12

La carpeta App_Data es una carpeta que su proceso de trabajo asp.net también tiene derechos de sistema de archivos, pero no se ha publicado a través del servidor web.

Por ejemplo lo usamos para actualizar un CSV local de contáctenos formulario. 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.

6

Lo usamos como un área de almacenamiento temporal para archivos csv cargados. Una vez cargado, un método ajax procesa y elimina el archivo.

33

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.

6

De la documentación sobre ASP.NET Web Project Folder Structure en MSDN:

Usted puede guardar los archivos de su proyecto Web en cualquier estructura de carpetas que es 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 la membresía y el rol. Para obtener más información acerca de , consulte Introducción a la Membresía y Comprensión de la función .

Para obtener más información, vea Introduction to Membership y Understanding Role Management.

Cuestiones relacionadas