在 Visual Studio 中创建新的 ASP.NET 应用程序时,会自动创建几个文件和文件夹。这些文件夹之一称为 App_Data.

此外,在通过选择菜单选项发布网站时 Build->Publish 有一个复选框可用 Include files from the App_Data folder.

我是否正确地假设放入此文件及其子文件夹中的文件将无法通过网络访问?例如,将我只想由应用程序代码使用的文件夹资源放入其中是否安全?

的真正用途是什么 App_Data 文件夹?

编辑:

感谢您的所有回答。从迄今为止收到的答案来看,我最感兴趣的是提到的两点:

  1. App_Data本质上是基于文件的数据存储的存储点
  2. 它不应该通过网络查看,并且是网络应用程序存储和读取数据的地方

有人可以指定如何确保“网络无法查看”吗?在执行标准部署时我是否可以依赖这一事实,或者我是否还需要检查服务器上的某些 IIS 设置。

当我有一组 pdf 文件时,我希望只能从应用程序访问它们。App_Data 文件夹是否是正确的使用位置,或者我应该创建一个单独的文件夹并手动设置 IIS 以确保它无法通过 Web 访问?

有帮助吗?

解决方案

App_Data 本质上是基于文件的数据存储的存储点(例如,与 SQL Server 数据库存储相反)。例如,一些简单的站点将其用于存储为 XML 的内容,通常数据库托管费用昂贵。

其他提示

在IIS中,突出显示本机,双击“请求过滤”,打开“隐藏段”选项卡。“App_Data”被列为受限文件夹。是的,我知道这个线程确实很旧,但这仍然适用。

App_data 的预期用途是存储应用程序数据以供 Web 进程访问。它不应该通过网络查看,并且是网络应用程序存储和读取数据的地方。

它是放置嵌入式数据库的地方,例如 Sql Server Express、Access 或 SQLite。

App_Data文件夹是一个文件夹,您的asp.net工作进程也拥有文件系统权限,但不通过Web服务器发布。

例如,我们用它来更新一个本地 CSV 联系我们 形式。如果首选的电子邮件方法失败或需要对数据源进行任何查询,则 App_Data 文件就在那里。

这并不理想,但它是一个很好的后备。

从有关的文档 ASP.NET Web 项目文件夹结构 在 MSDN 中:

您可以将Web Project的文件保留在适合您应用程序的任何文件夹结构中。为了使使用应用程序更容易使用,ASP.NET保留可以用于特定类型的内容的某些文件和文件夹名称。

应用程序数据 包含应用程序数据文件,包括 .mdf 数据库文件、XML 文件和其他数据存储文件。ASP.NET使用APP_DATA文件夹来存储应用程序的本地数据库,例如用于维护成员资格和角色信息的数据库。有关更多信息,请参阅 会员简介了解角色管理.

主要目的是保存应用程序的数据库文件。

不,默认情况下无法从网络访问此内容。

我们使用它作为上传的 csv 文件的临时存储区域。上传后,ajax 方法会处理并删除该文件。

App_Data 的预期用途是存储数据库相关文件。通常是 SQL Server Express .mdf 文件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top