在Visual Studio中创建新的ASP.NET应用程序时,会自动创建几个文件和文件夹.其中一个文件夹被调用App_Data
.
此外,当通过选择菜单选项发布网站时,可以Build->Publish
使用复选框Include files from the App_Data folder
.
我是否正确地假设放入此文件及其子文件夹的文件无法通过网络访问?例如,放入我打算仅由应用程序代码使用的文件夹资源是否安全?
该App_Data
文件夹的真正用途是什么?
编辑:
谢谢你的所有答案.从目前为止收到的答案中,我最感兴趣的是提到的两点:
App_Data本质上是基于文件的数据存储的存储点
它不应该由Web查看,并且是Web应用程序存储和读取数据的地方
是否有人能够确定如何确保"无法通过网络查看"?我可以在执行标准部署时依赖于这一事实,还是需要检查服务器上的某些IIS设置.
在我有一组pdf文件的情况下,我想只能从应用程序访问.App_Data文件夹是否适合使用,或者我应该创建一个单独的文件夹并手动设置IIS以确保Web无法访问它?
App_Data本质上是基于文件的数据存储的存储点(例如,与SQL Server数据库存储相对).例如,一些简单的站点将其用于存储为XML的内容,通常在DB的托管费用昂贵的情况下.
在IIS中,突出显示该计算机,双击"请求筛选",打开"隐藏的段"选项卡."App_Data"在那里列为受限文件夹.是的我知道这个帖子真的很旧,但这仍然适用.
App_data的预期用途是将Web进程的应用程序数据存储到访问者.它不应该由Web查看,并且是Web应用程序存储和读取数据的地方.
它是放置嵌入式数据库的地方,例如Sql Server Express,Access或SQLite.
App_Data文件夹是一个文件夹,您的asp.net工作进程也具有文件系统权限,但不通过Web服务器发布.
例如,我们使用它来更新联系我们表单的本地CSV .如果首选电子邮件方法失败或需要查询数据源,则App_Data文件就在那里.
这不是理想的,但它是一个很好的后退.
从MSDN中有关ASP.NET Web项目文件夹结构的文档:
您可以将Web项目的文件保存在任何方便您的应用程序的文件夹结构中.为了更轻松地使用您的应用程序,ASP.NET保留了可用于特定类型内容的某些文件和文件夹名称.
App_Data包含应用程序数据文件,包括.mdf数据库文件,XML文件和其他数据存储文件.ASP.NET使用App_Data文件夹来存储应用程序的本地数据库,例如用于维护成员资格和角色信息的数据库.有关更多信息,请参阅成员简介和了解角色管理.
主要目的是保留应用程序的数据库文件.
并且默认情况下,这不会从网络访问.
我们将其用作上传的csv文件的临时存储区域.上传后,ajax方法处理并删除文件.
App_Data的预期用途是存储数据库相关文件.通常是SQL Server Express .mdf文件.