Для чего используется папка App_Data в Visual Studio?
При создании нового приложения ASP.NET в Visual Studio несколько файлов и папок создаются автоматически. Одна из этих папок называется App_Data
,
Также при публикации сайта, выбрав пункт меню Build->Publish
флажок доступен Include files from the App_Data folder
,
Прав ли я, если предположить, что файлы, помещенные в этот файл и его подпапки, не будут доступны через Интернет? Например, было бы безопасно поместить в эту папку ресурсы, которые я намерен использовать только кодом приложения?
Какова реальная цель использования App_Data
папка?
РЕДАКТИРОВАТЬ:
Спасибо за все ответы. Из полученных ответов меня больше всего интересуют два момента:
- App_Data по сути является точкой хранения для файлового хранилища данных
- Он не должен быть доступен для просмотра в Интернете и является местом, где веб-приложение может хранить и считывать данные
Будет ли кто-то в состоянии указать, каким образом обеспечивается "недоступность для просмотра через Интернет"? Могу ли я полагаться на этот факт при выполнении стандартного развертывания или мне нужно также проверить некоторые параметры IIS на сервере.
В ситуации, когда у меня есть набор PDF-файлов, которые я хочу, чтобы быть доступным только из приложения. Будет ли папка App_Data подходящим местом для использования, или я должен создать отдельную папку и вручную настроить IIS, чтобы обеспечить ее недоступность через Интернет?
9 ответов
App_Data - это, по сути, точка хранения для файловых хранилищ данных (в отличие от хранилища базы данных SQL-сервера, например). Некоторые простые сайты используют его для контента, хранящегося, например, в формате XML, обычно там, где плата за хостинг для БД дорогая.
В IIS выделите компьютер, дважды щелкните "Фильтрация запросов", откройте вкладку "Скрытые сегменты". "App_Data" указан там как ограниченная папка. Да, я знаю, что эта тема действительно старая, но это все еще применимо.
Предполагаемое использование App_data - хранение данных приложения для веб-процесса. Он не должен быть доступен для просмотра в Интернете и является местом, где веб-приложение может хранить и считывать данные.
Это место для размещения встроенной базы данных, такой как Sql Server Express, Access или SQLite.
Папка App_Data - это папка, в которой ваш рабочий процесс asp.net также имеет права на файловые системы, но не публикуется через веб-сервер.
Например, мы используем его для обновления локального CSV формы обратной связи. Если предпочтительный метод электронной почты не удается или требуется какой-либо запрос источника данных, файлы App_Data находятся там.
Это не идеально, но это хороший запасной вариант.
Из документации о структуре папок веб-проекта ASP.NET в MSDN:
Вы можете хранить файлы вашего веб-проекта в любой структуре папок, удобной для вашего приложения. Чтобы упростить работу с вашим приложением, ASP.NET резервирует определенные имена файлов и папок, которые вы можете использовать для определенных типов содержимого.
App_Data содержит файлы данных приложения, включая файлы базы данных.mdf, файлы XML и другие файлы хранилища данных. Папка App_Data используется ASP.NET для хранения локальной базы данных приложения, такой как база данных для поддержки информации о членстве и роли. Для получения дополнительной информации см. Введение в членство и понимание управления ролями.
Мы используем его как временное хранилище для загруженных CSV-файлов. После загрузки метод ajax обрабатывает и удаляет файл.
Основное намерение - сохранить файл (ы) базы данных вашего приложения в.
И нет, это не будет доступно из Интернета по умолчанию.
Назначение для App_Data - хранить файл, связанный с базой данных. Обычно SQL Server Express .mdf файлы.