ASP.NET中App_Code,App_Data等文件夹的作用

简介: 1. Bin文件夹Bin文件夹包含应用程序所需的,用于控件、组件或者需要引用的任何其他代码的可部署程序集。该目录中存在的任何.dll文 件将自动地链接到应用程序。 2. App_Browser文件夹 该可选的文件夹包含.browser文件。

1. Bin文件夹
Bin文件夹包含应用程序所需的,用于控件、组件或者需要引用的任何其他代码的可部署程
序集。该目录中存在的任何.dll文 件将自动地链接到应用程序。


2. App_Browser文件夹

该可选的文件夹包含.browser文件。.browser文件描述浏览器(不管是移动设备浏览器,还
是台式机浏览器)的特 征和功能。


3. App_Code文件夹

App_Code文件夹正好在Web应用程序根目录下,其存储所有应当作为应用程序的一部分动态
编译的类文件。这些类文件自 动链接到应用程序,而不需要在页面中添加任何显式指令或
声明来创建依赖性。App_Code文件夹中放置的类文件可以包含任何可识别的ASP.NET组件
——自定义控件、辅助类、build提供程序、业务类、自定义提供程序、HTTP处理程序等。

注意 在开发时,对App_Code文件夹的更改会导致整个应用程序重新编译。对于大型
项目,这可能不受欢迎,而且很耗时。为此,鼓励大家将代码进行模块化处理 到不同的类
库中,按逻辑上相关的类集合进行组织。应用程序专用的辅助类大多应当放置在App_Code文
件夹中。

App_Code文件夹中存放的所有类文件应当使用相同的语言。如果类文件使用两种或多种语言
编写,则必须创建特定语言的子目录,以包含用每种语言编写的类。一旦根据语言组织这些
类文件,就要在web.config文件中为每个子目录添加一个设置:

<compilation>

<codeSubDirectories>

<add directoryName="VBFolder" />

</codeSubDirectories>

</compilation>

重要的是,特定语言的子目录应在web.config文件中注册,否则,不管它们属于哪个文件夹
,App_Code文件夹下 的所有文件将被编译成一个单独的程序集。上述配置脚本描述了这么
一种情况,即所有的C#文件都放在App_Code文件夹的根目录下,而把几个 Visual Basic
.NET类文件移入VBFolder目录中。如果<codeSubDirectories>节中提到的目录不存在,则
会收到一个编译错误提 示。

App_Code根文件夹中的文件被编译成App_Code_xxx.dll程序集,其中xxx是随机生成的字符
序列。一个 给定子目录中的文件将被编译成一个名为App_SubCode_xxx_yyy.dll的动态创
建的程序集,其中xxx指示子目录的名称,而yyy是一个 随机字符序列。只有在应用程序根
目录中的web.config文件中进行了设置,<codeSubDirectories>节才有效。

在App_Code目录或任何其他子目录中放置一个assemblyinfo.cs文件,可以创建一个强命名
的程序集。显然,如果该文件夹包含Visual Basic .NET文件,那么将使用
assemblyinfo.vb文件。程序集配置文件可以引用一个.snk文件来保存强名称的密钥。

注意 给一个程序集设置一个强名称,首先必须获得一个公开/私有密钥对。通过
使用强名称(Strong Name)工具(sn.exe),可以获得这样一个密钥对。强名称工具是我们可
以在.NET Framework的安装路径中发现的SDK binary之一。密钥对文件通常有一个.snk扩
展名。可以将该文件保存到一个应用程序文件夹中,并在assemblyinfo.cs文件中引用它,
如下所示:

[assembly: AssemblyKeyFileAttribute(@"yourKeyPair.snk")]

注意,Visual Basic .NET是在包含Visual Studio Solution的目录中寻找密钥文件,
而C#编译器则在包含该binary的目录中寻找密钥文件。据此可知,用此属性调整我们使用的
路径,或者把密钥文件放在合适的文件夹中。

在随后发生的任何重新生成中,程序集的名称将发生变化。同时,老的AppDomain请求一结
束,就删除老的程序集。

App_Code文件夹并非只能包含类文件。特别是,它可以包含并能自动地处理代表数据架构的
XSD文件。把一个XSD文件 添加到该文件夹中时,编译器将把它解析成一个有类型的
DataSet类,并将它添加到应用程序作用域中。在ASP.NET 1.x中,这一工作由Visual
Studio .NET向导,使用一个命令行实用程序(xsd.exe)完成的。

注意 使用web.config文件注册一个组件(例如,一个自定义的服务器控件或一
个自定义的HTTP处理程序)时,通常要求指定包含该代码的程序集名称。如 果该组件定义
在App_Code文件夹中,则应该用什么名称来指示程序集?在这种情况下,只是忽略程序集信
息,并规定完整的类名即可。如果没有规定任何程 序集,则ASP.NET运行库将试图从任何
已装载的程序集中装入该类,包括为App_Code文件夹动态创建的程序集。

 

4. App_Data文件夹

App_Data文件夹应该包含应用程序的本地数据存储。它通常以文件(诸如Microsoft
Access或Microsoft SQL Server Express数据库、XML文件、文本文件以及应用程序支持
的任何其他文件)形式包含数据存储。该文件夹内容不由ASP.NET处理。该文件夹是ASP.NET
提供程序存储自身数据的默认位置。

注意 默认ASP.NET帐户被授予对文件夹的完全访问权限。如果碰巧要改变
ASP.NET帐户,一定要确保新帐户被授予对该文件夹的读/写访问权。


5. App_GlobalResources文件夹

 

6. App_LocalResources文件夹

7. App_Themes文件夹

App_Themes文件夹为ASP.NET控件定义主题。主题包含在App_Themes文件夹下的一个文件夹
。根据定义,一个主题是一组带有样式信息的文件。主题文件夹中的文件内容被编译,以生
成一个类,而该类被页面调用以编程的方式设置主题化控件的样式。

App_Themes文件夹列出应用程序的本地主题。 应用程序还可以继承如下文件夹中定义的全
局主题:

%WINDOWS%"Microsoft.NET"Framework"[version]"ASP.NETClientFiles"Themes

从编译的角度看,全局主题和局部主题没有区别。如果一个给定名称的主题,既存在应用程
序的本地主题,又存在服务器机器的全局主题,则本地主题优先适用。

8. App_WebReferences文件夹

在Visual Studio .NET 2003中,一个需要访问Web服务的ASP.NET应用程序,将通过“添
加Web引用”对话框获得相应的.wsdl文件。Web服务的WSDL(Web Service Description
Language)文档,对于从页面使用Web服务是不够的。ASP.NET页面最终是一个托管类,并且
需要与另一个托管类通信。因此,Web服务被一个 代理类所包装。该代理类是由Visual
Studio使用命令行工具wsdl.exe的服务创建的。该代理类尽量包含与Web服务商的Web方法一
样多的方法,并且它结合了Web服务的公共接口 定义的任何自定义的数据类型。

这个操作不需要开发人员付出很大的代价。然而,开发人员显然要依赖于Visual Studio来
生成代理类。如果能够直接把.wsdl文件放在应用程序的目录树的某个地方,并让ASP.NET处
理其余的任务,这样不是更容易、更简单 吗?这正好是App_WebReferences文件夹要做的
事情。

它识别那些用来描述所绑定的Web服务的.wsdl文件,并生成运行时代理类,以便ASP.NET页
面能够以类型安全的方式 放置对Web服务的调用。App_WebReferences文件夹可以包含子文
件夹。子文件夹的名称驱动最后所得到的代理类的命名空间,而WSDL文件 定义类名。例如
,samples.wsdl文件和ProsAspNet20子文件夹将创建一个称为ProAspNet20.Samples的代理
类。该动 态创建的程序集称为App_WebReferences.xxx.dll,其中xxx是一个随机的字符序
列。

文件夹名称
文件类型
注 释

Bin
.dll
包含应用程序所需的任何预生成的程序集

App_Browsers
.browser
包含应用程序特有的浏览器定义文件,ASP.NET用它来识别各浏览器及确定它们的功能

App_Code
.cs、.vb、.xsd、自定义的文件类型
包含作为应用程序的一部分编译的类的源文件。当页面被请求时,ASP.NET编译该文件夹
中的代码。该文件夹中的代码在应用程序中自动地被引用

App_Data
.mdb、.mdf、.xml
包含Microsoft Office Access和SQL Express文件以及XML文件或其他数据存储

App_GlobalResources
.resx
包含在本地化应用程序中以编程方式使用的资源文件

App_LocalResources
.resx
包含页面范围的资源文件

App_Themes
.skin、.CSS、.xsl、附属文件
包含一组定义ASP.NET页面和控件外观的文件

App_WebReferences
.wsdl

目录
相关文章
|
存储 自然语言处理 C#
.NET开源、跨平台的本地日记APP - SwashbucklerDiary
.NET开源、跨平台的本地日记APP - SwashbucklerDiary
112 0
|
4月前
|
Linux C++ Windows
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
|
16天前
|
开发框架 监控 .NET
【Azure App Service】部署在App Service上的.NET应用内存消耗不能超过2GB的情况分析
x64 dotnet runtime is not installed on the app service by default. Since we had the app service running in x64, it was proxying the request to a 32 bit dotnet process which was throwing an OutOfMemoryException with requests >100MB. It worked on the IaaS servers because we had the x64 runtime install
|
2月前
|
Java Linux Apache
jar 解压app.jar到指定文件夹
要将 JAR 文件(如 `app.jar`)解压到指定文件夹,可使用 Java 自带的 `jar` 工具、Apache Ant、7-Zip 或 Python 脚本。方法包括命令行操作(如 `jar xf app.jar -C /path/to/destination/folder`)、Ant 构建文件、7-Zip 图形界面或命令行,以及 Python 的 `zipfile` 模块。选择适合的方法即可轻松完成解压。
|
3月前
|
存储 开发工具 Android开发
使用.NET MAUI开发第一个安卓APP
【9月更文挑战第24天】使用.NET MAUI开发首个安卓APP需完成以下步骤:首先,安装Visual Studio 2022并勾选“.NET Multi-platform App UI development”工作负载;接着,安装Android SDK。然后,创建新项目时选择“.NET Multi-platform App (MAUI)”模板,并仅针对Android平台进行配置。了解项目结构,包括`.csproj`配置文件、`Properties`配置文件夹、平台特定代码及共享代码等。
192 2
|
4月前
|
Java Windows 容器
【应用服务 App Service】快速获取DUMP文件(App Service for Windows(.NET/.NET Core))
【应用服务 App Service】快速获取DUMP文件(App Service for Windows(.NET/.NET Core))
|
4月前
|
开发框架 .NET Docker
【Azure 应用服务】App Service .NET Core项目在Program.cs中自定义添加的logger.LogInformation,部署到App Service上后日志不显示Log Stream中的问题
【Azure 应用服务】App Service .NET Core项目在Program.cs中自定义添加的logger.LogInformation,部署到App Service上后日志不显示Log Stream中的问题
|
4月前
|
开发框架 JavaScript 前端开发
【App Service】解决 .NET Profiler 报告打开后无数据加载的问题
【App Service】解决 .NET Profiler 报告打开后无数据加载的问题
|
4月前
|
存储 Linux 网络安全
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Linux/Linux Container)
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Linux/Linux Container)
|
4月前
|
开发框架 前端开发 JavaScript
【Azure App Service】.NET应用读取静态文件时遇见了404错误的解决方法
【Azure App Service】.NET应用读取静态文件时遇见了404错误的解决方法

热门文章

最新文章

下一篇
无影云桌面