Для чого використовується папка App_Data у Visual Studio?


156

Створюючи нову програму ASP.NET у Visual Studio, пара файлів і папок створюється автоматично. Одна з таких папок називається App_Data.

Також при публікації веб-сайту, вибравши опцію меню, Build->Publishвстановлено прапорець Include files from the App_Data folder.

Чи правильно я припускаю, що файли, розміщені у цьому файлі та його підпапках, не будуть доступними через Інтернет? Наприклад, чи було б безпечно помістити в ту папку ресурси, які я маю намір використати лише за допомогою коду програми?

Яке справжнє цільове використання App_Dataпапки?

Редагувати:

Дякую за всі відповіді. З отриманих відповідей поки що мене цікавлять два згадані моменти:

  1. App_Data, по суті, є місцем зберігання файлових сховищ даних
  2. Він не повинен переглядатись в Інтернеті, а це веб-додаток для зберігання та зчитування даних з

Хтось міг би вказати, як забезпечується "не переглядається в Інтернеті"? Чи можу я покластися на цей факт під час виконання стандартного розгортання чи мені потрібно перевірити деякі параметри IIS на сервері.

У ситуації, коли у мене є набір файлів pdf, які я хочу бути доступними лише з програми. Чи папка App_Data буде правильним місцем для використання, або я повинен створити окрему папку та встановити IIS вручну, щоб переконатися, що вона недоступна через Інтернет?

Відповіді:


119

App_Data, по суті, є місцем зберігання файлових сховищ даних (на відміну, наприклад, від сховища баз даних SQL-сервера). Деякі прості веб-сайти використовують його для вмісту, що зберігається як XML, наприклад, зазвичай там, де вартість хостингу для БД є дорогою.


8
Дякую аннаката за цю відповідь. Я думаю, що важливим моментом є те, що вміст App_Data за замовчуванням не переглядається в Інтернеті, як згадував JaredPar. а також, як ви коментували, "цю поведінку можна змінити з * .config httphandlers"
padn

Чи містить папка app_data посилання на локальні веб-сервіси? Мій веб-додаток відмінно працює в .net F5. Але веб-сервіси не працюють після упаковки та розгортання на ISS ... :(
bonCodigo

1
Також ця папка використовується для зберігання файлів локальної бази даних.
Андрій Хотько

1
Одне, про що не згадувалося, це те, що IIS перезавантажує веб-процес при зміні файлу, але App_Data виключена з цього!
Петро

43

у IIS виділіть машину, двічі клацніть «Запити фільтрування», відкрийте вкладку «Приховані сегменти». "App_Data" вказаний там як обмежена папка. Так, я знаю, що ця тема справді стара, але це все ще застосовується.


25

Використання App_data призначене для збереження даних про додатки для веб-процесу. Він не повинен переглядатись в Інтернеті, а це веб-додаток для зберігання та зчитування даних з.


7
Не просто "не слід", що-небудь у цій папці заблоковано для обслуговування ASP.NET
John Sheehan

@John, у мене було враження, що існують способи "змінити" таку поведінку. Так, безумовно зло, щоб зробити це, але я не знаю, наскільки це звичайно чи ні
JaredPar

Як це "не видимий" досягнутий? Чи матиме папка App_data конкретні налаштування в IIS?
padn

@padn, я не впевнений на 100% в стеці, але це або спеціальна обробка в IIS, або стек Asp.Net. msdn.microsoft.com/en-us/library/ex526337.aspx
JaredPar

2
iirc цю поведінку можна змінити з * .config httphandlers
annakata

15

Це місце для розміщення вбудованої бази даних, наприклад, Sql Server Express, Access або SQLite.


1
Або будь-які інші дані, які веб-сайт може використовувати, як, наприклад, XML-файли (наприклад, список штатів / країн / тощо)
John Sheehan

1
Це база даних лише тоді? Чи можу я сказати, наприклад, деякі файли у форматі PDF, до яких я хочу отримати доступ лише до думкового коду, наприклад, використовуючи метод Response.TransmitFile?
padn

5
нічого - поняття даних не визначає тип файлу чи формат
annakata

13

Папка App_Data - це папка, у якій ваш робочий процес asp.net також має права синхронізації файлів, але не публікується через веб-сервер.

Наприклад, ми використовуємо його для оновлення локального CSV форми, що використовується у нас . Якщо бажаний метод електронної пошти не вдається або потрібен будь-який запит джерела даних, файли App_Data є.

Це не ідеально, але це хороший відступ.


10

З документації про структуру папок веб-проектів ASP.NET в MSDN:

Ви можете зберігати файли веб-проекту в будь-якій структурі папок, зручній для вашої програми. Щоб полегшити роботу з додатком, ASP.NET зберігає певні імена файлів і папок, які ви можете використовувати для конкретних типів вмісту.

App_Data містить файли даних додатків, включаючи .mdf файли баз даних, XML-файли та інші файли зберігання даних. Папка App_Data використовується ASP.NET для зберігання локальної бази додатків, наприклад, бази даних для підтримки інформації про членство та ролі. Для отримання додаткової інформації див. Вступ до членства та розуміння управління ролями .


7

Основний намір полягає у збереженні файлів (-ів) баз даних вашого додатка.

І ні, це за замовчуванням не буде доступним з Інтернету.


7

Ми використовуємо це як область тимчасового зберігання для завантажених файлів CSV. Після завантаження метод ajax обробляє та видаляє файл.


6

Використання програми App_Data - це збереження файлів, пов’язаних із базою даних. Зазвичай .mdf-файли SQL Server Express.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.