Для чего используется папка App_Data в Visual Studio?
-
22-08-2019 - |
Вопрос
При создании нового приложения ASP.NET в Visual Studio автоматически создается несколько файлов и папок.Одна из этих папок называется App_Data
.
Также при публикации веб-сайта путем выбора пункта меню Build->Publish
доступен флажок Include files from the App_Data folder
.
Прав ли я, полагая, что файлы, помещенные в этот файл и его подпапки, не будут доступны через Интернет?Например, будет ли безопасно помещать в эту папку ресурсы, которые я собираюсь использовать только кодом приложения?
Каково реальное предполагаемое использование App_Data
папка?
РЕДАКТИРОВАТЬ:
Спасибо за все ответы.Из полученных до сих пор ответов меня интересуют в основном два упомянутых момента:
- App_Data — это, по сути, точка хранения файловых данных.
- Он не должен быть доступен для просмотра в Интернете и является местом, где веб-приложение может хранить и считывать данные.
Может ли кто-нибудь указать, как обеспечивается «недоступность для просмотра в Интернете»?Могу ли я полагаться на этот факт при выполнении стандартного развертывания или мне нужно также проверить некоторые настройки IIS на сервере.
В ситуации, когда у меня есть набор PDF-файлов, доступ к которым я хочу получить только из приложения.Будет ли папка App_Data подходящим местом для использования, или мне следует создать отдельную папку и вручную настроить IIS, чтобы гарантировать, что она не будет доступна через Интернет?
Решение
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 оставляет определенные имена файлов и папок, которые вы можете использовать для определенных типов контента.
Данные приложения содержит файлы данных приложения, включая файлы базы данных .mdf, файлы XML и другие файлы хранилища данных.Папка APP_DATA используется ASP.NET для хранения локальной базы данных приложения, такой как база данных для поддержания информации о членстве и роле.Для получения дополнительной информации см. Введение в членство и Понимание управления ролями.
Основная цель состоит в том, чтобы сохранить файлы базы данных вашего приложения.
И нет, по умолчанию это не будет доступно из Интернета.
Мы используем его как временное хранилище для загруженных файлов CSV.После загрузки метод ajax обрабатывает и удаляет файл.
Предполагаемое использование App_Data — хранение файла, связанного с базой данных.Обычно файлы SQL Server Express .mdf.