Для чего используется папка App_Data в Visual Studio? - PullRequest
148 голосов
/ 09 февраля 2009

При создании нового приложения ASP.NET в Visual Studio несколько файлов и папок создаются автоматически. Одна из этих папок называется App_Data.

Также при публикации веб-сайта путем выбора пункта меню Build->Publish доступен флажок Include files from the App_Data folder.

Прав ли я, если предположить, что файлы, помещенные в этот файл и его подпапки, не будут доступны через Интернет? Например, было бы безопасно поместить в эту папку ресурсы, которые я намерен использовать только кодом приложения?

Каково реальное предназначение папки App_Data?

EDIT:

Спасибо за все ответы. Из полученных ответов меня больше всего интересуют два упомянутых пункта:

  1. App_Data, по сути, является точкой хранения для файлового хранилища данных
  2. Это не должно быть доступно для просмотра в Интернете, и это место для веб-приложения для хранения и чтения данных из

Может ли кто-нибудь указать, как обеспечивается "недоступность для просмотра через Интернет"? Могу ли я полагаться на этот факт при выполнении стандартного развертывания или мне нужно также проверить некоторые параметры IIS на сервере.

В ситуации, когда у меня есть набор файлов PDF, которые я хочу, чтобы они были доступны только из приложения. Будет ли папка App_Data подходящим местом для использования, или я должен создать отдельную папку и вручную настроить IIS, чтобы обеспечить ее недоступность через Интернет?

Ответы [ 9 ]

114 голосов
/ 09 февраля 2009

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

39 голосов
/ 06 февраля 2013

в IIS, выделите машину, дважды щелкните «Фильтрация запросов», откройте вкладку «Скрытые сегменты». «App_Data» указан там как ограниченная папка. Да, я знаю, что эта ветка действительно старая, но она все еще применима.

23 голосов
/ 09 февраля 2009

Предполагаемое использование App_data - хранить данные приложения для доступа к веб-процессу. Он не должен быть доступен для просмотра в Интернете и является местом, в котором веб-приложение может хранить и считывать данные.

15 голосов
/ 09 февраля 2009

Это место для размещения встроенной базы данных, такой как Sql Server Express, Access или SQLite.

13 голосов
/ 09 февраля 2009

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

Например, мы используем его для обновления локального CSV формы, свяжитесь с нами . Если предпочитаемый метод электронной почты не работает или требуется какой-либо запрос источника данных, файлы App_Data находятся там.

Это не идеально, но это хороший запасной вариант.

10 голосов
/ 08 мая 2014

Из документации о Структура папки веб-проекта ASP.NET в MSDN:

Вы можете хранить файлы вашего веб-проекта в любой структуре папок, которая удобно для вашего приложения. Чтобы было проще работать с вашим ASP.NET резервирует определенные имена файлов и папок, которые вы можно использовать для определенных типов контента.

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

7 голосов
/ 20 апреля 2009

Мы используем его как временное хранилище для загруженных CSV-файлов. После загрузки метод ajax обрабатывает и удаляет файл.

7 голосов
/ 09 февраля 2009

Основная цель - сохранить файлы базы данных вашего приложения в.

И нет, это не будет доступно из Интернета по умолчанию.

6 голосов
/ 09 февраля 2009

Использование App_Data предназначено для хранения файла, связанного с базой данных. Обычно SQL Server Express .mdf файлы.

...