web-dev-qa-db-fra.com

À quoi sert le dossier App_Data utilisé dans Visual Studio?

Lors de la création d'une nouvelle application ASP.NET dans Visual Studio, plusieurs fichiers et dossiers sont créés automatiquement. L'un de ces dossiers s'appelle App_Data.

De même, lors de la publication d'un site Web en sélectionnant l'option de menu Build->Publish, Une case à cocher est disponible Include files from the App_Data folder.

Ai-je raison de supposer que les fichiers placés dans ce fichier et ses sous-dossiers ne seront pas accessibles via le Web? Par exemple, serait-il prudent de mettre dans ce dossier les ressources que je ne souhaite utiliser que par le code de l'application?

Quelle est l'utilisation réelle du dossier App_Data?

EDIT:

Merci pour toutes les réponses. D'après les réponses reçues jusqu'à présent, je m'intéresse principalement à deux points mentionnés:

  1. App_Data est essentiellement un point de stockage pour le magasin de données basé sur fichier
  2. Il ne devrait pas être visible sur le Web et constitue un endroit où l’application Web stocke et lit les données

Quelqu'un pourrait-il préciser comment le "non visible par le Web" est assuré? Puis-je m'appuyer sur ce fait lors du déploiement standard ou dois-je également vérifier certains paramètres IIS sur le serveur)?.

Dans la situation où j'ai un ensemble de fichiers pdf que je veux être accessible uniquement à partir de l'application. Le dossier App_Data serait-il le bon endroit à utiliser ou devrais-je créer un dossier distinct et le définir manuellement IIS pour qu'il ne soit pas accessible par le Web?)?

150
padn

App_Data est essentiellement un point de stockage pour les magasins de données basés sur fichiers (par opposition à un magasin de base de données serveur SQL, par exemple). Certains sites simples s'en servent pour le contenu stocké au format XML par exemple, généralement lorsque les frais d'hébergement d'une base de données sont coûteux.

116
annakata

dans IIS, mettez en surbrillance la machine, double-cliquez sur "Filtrage des demandes", ouvrez l'onglet "Segments cachés". "App_Data" est répertorié ici en tant que dossier restreint. Oui, je sais que ce fil est vraiment vieux, mais cela reste applicable.

39
rocketsarefast

App_data est destiné à stocker les données d'application permettant au processus Web d'accéder. Il ne doit pas être visible sur le Web et constitue un lieu de stockage et de lecture des données pour l'application Web.

24
JaredPar

C'est un endroit où placer une base de données intégrée, telle que Sql Server Express, Access ou SQLite.

15
Shawn

Le dossier App_Data est un dossier dans lequel votre processus de travail asp.net possède également des droits de système sur les fichiers, mais n'est pas publié sur le serveur Web.

Par exemple, nous l’utilisons pour mettre à jour un fichier CSV local de forme nous contacter. Si la méthode de messagerie préférée échoue ou si une interrogation de la source de données est requise, les fichiers App_Data sont présents.

Ce n'est pas idéal, mais c'est une bonne solution de rechange.

13
Ed Blackburn

De la documentation sur structure des dossiers de projets Web ASP.NET dans MSDN:

Vous pouvez conserver les fichiers de votre projet Web dans n’importe quelle structure de dossiers adaptée à votre application. Pour faciliter l'utilisation de votre application, ASP.NET réserve certains noms de fichiers et de dossiers que vous pouvez utiliser pour des types de contenu spécifiques.

App_Data contient des fichiers de données d'application, notamment des fichiers de base de données .mdf, des fichiers XML et d'autres fichiers de magasin de données. ASP.NET utilise le dossier App_Data pour stocker la base de données locale d'une application, telle que la base de données permettant de gérer les informations sur les membres et les rôles. Pour plus d'informations, voir Introduction à l'adhésion et Comprendre la gestion des rôles .

10
eKek0

Nous l'utilisons comme zone de stockage temporaire pour les fichiers csv téléchargés. Une fois téléchargée, une méthode ajax traite et supprime le fichier.

7
gumps

L’intention principale est de conserver le (s) fichier (s) de base de données de votre application dans.

Et non, cela ne sera pas accessible à partir du Web par défaut.

7
Martin Brown

L'utilisation prévue pour App_Data est de stocker un fichier lié à la base de données. Généralement, les fichiers .mdf SQL Server Express.

6
WebMatrix