ASP.NET 配置 API 概览
2006-12-21 12:28
309 查看
ASP.NET 配置 API 允许你使用统一的编程接口对应用程序的配置数据进行开发、部署、以及管理。你可以使用配置 API 通过编程对所有 ASP.NET 配置进行开发和更改,从而不需要对 XML 配置文件进行直接编辑。另外,你还可以在自定义控制台应用程序或脚本、基于 Web 的管理工具、以及 Microsoft 管理控制台(MMC)的管理单元中使用配置 API。.NET Framework 2.0 中包括下列两个使用配置 API 的配置管理工具:
ASP.NET MMC 管理单元。
该工具通过使用配置 API 简化管理任务,从所有配置层次级别中为本地配置提供一个集成视图。
网站管理工具
该工具允许你对本地或远程应用程序中的配置设定进行管理,包括被托管网站。
ASP.NET 配置 API 与 Internet 信息服务(IIS)的可编程配置 API 分离。更多信息请参考使用 IIS 可编程管理。
简化应用程序配置的管理,配置 API 允许你在所有配置层次的合并集中对配置数据进行查看,从而替代分别从不同的配置文件中对分离的配置进行查看的操作。另外,配置 API 还允许你对所有应用程序配置进行操作,而不需要直接编辑 XML 配置文件。最后,配置 API 还简化了管理工具的配置任务,如网站管理工具。
配置 API 简化了配置文件的创建以及跨计算机配置的脚本运行。
配置 API 不支持 IIS 应用程序的创建。有关编写 IIS 管理应用程序的相关信息,请参考 IIS SDK 中的使用
当特定实体中没有配置文件的时候,
你可以使用下列类对象中的配置访问方法获取
如果你的实体是客户端应用程序,请使用
如果你的实体是 Web 应用程序,请使用
这些方法会返回一个
读取
你可以使用
提示:如果你在使用静态方法
写入
你可以使用
如果需要为特定实体创建配置文件以对被继承的配置设定进行重载,请使用下列任何一种保存配置的方法:
提示:要启用对远程计算机的配置设定的访问,请使用 Aspnet_regiis 命令行工具。
代码实例
在 ASP.NET 页面中,你可以使用下例代码获取运行该页面时所需的应用程序配置信息。本例代码使用了静态方法
在 ASP.NET 应用程序或者客户端应用程序中,你可以使用下例代码分别获取每个应用程序的配置信息。本例代码使用了
用于多个服务器的工具
如果你同时管理多个服务器,你可能需要为每台服务器使用相同的 ASP.NET 应用程序进行配置和管理。比如,管理某个 Web 农场可能需要完成下列任务:
编写为 ASP.NET 应用程序生成相同配置的脚本,包括 Web 农场中的任何服务器或所有服务器。
对用于应用程序每个实例的文件进行锁定。
自动化已部署应用程序的配置记录,以确保相同的配置被安装在每台计算机上。
对配置进行一次性编辑,然后把这些更改应用到所有应用程序实例中,不管应用程序是否得到安装。
另外,ASP.NET 配置 API 还支持跨服务器的批处理操作。
使用同一个工具对配置进行创建和管理
作为网站所有者,你可以使用 ASP.NET MMC 管理单元对计算机中的 ASP.NET 应用程序进行创建和管理。ASP.NET MMC 配置单元通过一个图形化用户界面暴露 ASP.NET 配置 API 中的功能。ASP.NET MMC 管理单元为来自多个配置文件的配置提供一个统一的视图,如会话,安全,错误,以及追踪。你可以不需要直接对 XML 配置文件进行编辑。
ASP.NET MMC 管理单元。
该工具通过使用配置 API 简化管理任务,从所有配置层次级别中为本地配置提供一个集成视图。
网站管理工具
该工具允许你对本地或远程应用程序中的配置设定进行管理,包括被托管网站。
ASP.NET 配置 API 与 Internet 信息服务(IIS)的可编程配置 API 分离。更多信息请参考使用 IIS 可编程管理。
配置 API 能做什么
ASP.NET 配置 API 由用于网站配置和应用程序编程的 ASP.NET 管理对象集合而组成。管理对象被实现成 .NET Framework 类库。配置 API 编程模型有助于加强编译时的数据类型一致性和可靠性。简化应用程序配置的管理,配置 API 允许你在所有配置层次的合并集中对配置数据进行查看,从而替代分别从不同的配置文件中对分离的配置进行查看的操作。另外,配置 API 还允许你对所有应用程序配置进行操作,而不需要直接编辑 XML 配置文件。最后,配置 API 还简化了管理工具的配置任务,如网站管理工具。
配置 API 简化了配置文件的创建以及跨计算机配置的脚本运行。
配置 API 不支持 IIS 应用程序的创建。有关编写 IIS 管理应用程序的相关信息,请参考 IIS SDK 中的使用
System.DirectoryServices配置 IIS。
管理本地和远程配置设定
Configuration对象对由合并的配置设定视图进行展示并且应用于特定的物理实体(如某台计算机),或者某个逻辑实体(如某个应用程序或网站)。特定的逻辑实体可以存在于本地计算机或者远程服务器上。
当特定实体中没有配置文件的时候,
Configuration对象会展示定义在 Machine.config 文件中的默认配置设定。
你可以使用下列类对象中的配置访问方法获取
Configuration对象:
如果你的实体是客户端应用程序,请使用
ConfigurationManager类。
如果你的实体是 Web 应用程序,请使用
WebConfigurationManager类。
这些方法会返回一个
Configuration对象,进而为配置文件的处理提供必须的方法和属性。当然,你还可以对这些文件进行读取或写入访问。
读取
你可以使用
GetSection或者
GetSectionGroup方法对配置信息进行读取。读取的用户或进程必须拥有所有配置文件的读取权限。
提示:如果你在使用静态方法
GetSection的时候传递了 path 参数,path 参数必须由运行代码的应用程序进行引用。否则,
GetSection方法会忽略该参数并且返回当前运行的应用程序配置信息。
写入
你可以使用
Save方法对配置信息进行写入。写入的用户或进程必须拥有配置文件和当前配置层次级别的目录的写入权限。
如果需要为特定实体创建配置文件以对被继承的配置设定进行重载,请使用下列任何一种保存配置的方法:
Save方法用于创建新的配置文件。
SaveAs方法用于生成其他位置的配置文件。
提示:要启用对远程计算机的配置设定的访问,请使用 Aspnet_regiis 命令行工具。
代码实例
在 ASP.NET 页面中,你可以使用下例代码获取运行该页面时所需的应用程序配置信息。本例代码使用了静态方法
System.Web.Configuration.WebConfigurationManager.GetSection(System.String)。
System.Web.Configuration.UrlMappingsSection urlMaps = (System.Web.Configuration.UrlMappingsSection)System.Web.Configuration.WebConfigurationManager.GetSection("system.web/urlMappings"); Bool urlMappingsEnabled = urlMaps.IsEnabled;
在 ASP.NET 应用程序或者客户端应用程序中,你可以使用下例代码分别获取每个应用程序的配置信息。本例代码使用了
System.Configuration.Configuration对象的非静态方法
GetSection。
System.Configuration.Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("/SampleWebApp"); System.Web.Configuration.UrlMappingsSection urlMaps = (System.Web.Configuration.UrlMappingsSection)System.Web.Configuration.WebConfigurationManager.GetSection("system.web/urlMappings"); bool urlMappingsEnabled = urlMaps.IsEnabled;
配置类与名字空间
许多配置类和方法彼此都十分相似。下表列出了最常用的配置类和名字空间。配置类和名字空间 | 描述 |
---|---|
System.Configuration名字空间 | 包含用于所有 .NET Framework 应用程序的主要配置类。包括 .NET Framework 客户端配置段的段处理器类。段处理器类用于获取配置段的数据,如 GetSection和 GetSectionGroup方法(这两个方法都是非静态方法)。 ASP.NET 段处理器被包含在 System.Web.Configuration名字空间中。 |
System.Configuration.Configuration类 | 用于展示计算机、应用程序、Web 目录、或其他资源的配置数据集。Configuration类实例与合并在配置层次中的配置设定进行通信。 该类包含了一些比较有用的方法,如 GetSection和 GetSectionGroup,以对配置设定进行更新并且获取配置段和配置段组的引用(这两个方法是非静态方法)。 该类被用于获取设计时配置数据类型的方法返回对象类型,如 WebConfigurationManager和 ConfigurationManager类的方法。 |
System.Web.Configuration名字空间 | 包含 ASP.NET 配置段的段处理器类。段处理器类用于获取配置段的数据,如 GetSection和 GetSectionGroup方法(这两个方法都是非静态方法)。 |
System.Web.Configuration.WebConfigurationManager类 | 为获取运行时和设计时配置设定的引用而提供有用的方法。这些方法使用 System.Configuration.Configuration类实例作为返回类型。你可以在该类的静态方法 GetSection或者 System.Configuration.ConfigurationManager类的非静态方法 GetSection方法之间作出选择。 如果是 Web 应用程序的配置操作,我们推荐使用 System.Web.Configuration.WebConfigurationManager类而不是 System.Configuration.ConfigurationManager类。 |
System.Configuration.Provider名字空间 | 为自定义和扩展配置提供者提供一种操作方式。配置系统中的所有提供者类都由该类派生而来。 |
System.Web.Management名字空间 | 包含对 Web 应用程序进行管理和监视的类和接口。严格地说,该名字空间并不是配置 API 中的考虑部分。例如,追踪和事件触发都是由该名字空间中的类来完成的。 |
System.Management.Instrumentation名字空间 | 为应用程序通过 Windows 管理工具(WMI)为潜在用户展示管理信息和事件时而提供的类。ASP.NET 状态监视使用 WMI 对事件进行描述。严格地说,该名字空间也不是配置 API 中的考虑部分。 |
配置类的继承结构
下图说明了System.Web.Configuration和
System.Configuration名字空间中的成员类之间的继承关系。你可以使用这个图表对当前实例对象中的有效属性和方法进行了解,以及如何获取更多信息。
配置类的聚合结构
下图说明了System.Web.Configuration和
System.Configuration名字空间中的成员类之间的聚合关系。你可以使用这个图表对被其他类实例化的配置类对象进行了解。
配置专用工具
你可能需要同时允许多个管理员对被指定资源进行管理,如特定的网站和应用程序,直到这些管理员对其他资源的访问被得到限制。你还可以开发用于 ASP.NET 配置 API 的管理工具对管理员必需的配置设定进行展示,直到其他设定的访问被设定。这使得管理员能够对资源进行保护并且不需要直接访问配置文件。用于多个服务器的工具
如果你同时管理多个服务器,你可能需要为每台服务器使用相同的 ASP.NET 应用程序进行配置和管理。比如,管理某个 Web 农场可能需要完成下列任务:
编写为 ASP.NET 应用程序生成相同配置的脚本,包括 Web 农场中的任何服务器或所有服务器。
对用于应用程序每个实例的文件进行锁定。
自动化已部署应用程序的配置记录,以确保相同的配置被安装在每台计算机上。
对配置进行一次性编辑,然后把这些更改应用到所有应用程序实例中,不管应用程序是否得到安装。
另外,ASP.NET 配置 API 还支持跨服务器的批处理操作。
使用同一个工具对配置进行创建和管理
作为网站所有者,你可以使用 ASP.NET MMC 管理单元对计算机中的 ASP.NET 应用程序进行创建和管理。ASP.NET MMC 配置单元通过一个图形化用户界面暴露 ASP.NET 配置 API 中的功能。ASP.NET MMC 管理单元为来自多个配置文件的配置提供一个统一的视图,如会话,安全,错误,以及追踪。你可以不需要直接对 XML 配置文件进行编辑。
相关文章推荐
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
- 一起学ASP.NET Core 2.0学习笔记(二)- ef core2.0 及mysql provider 、Fluent API相关配置及迁移
- 为 SQL Server 创建并配置 ASP.NET 应用服务数据库概览
- ASP.NET Core WebApi 跨域配置 Cors
- 一起学ASP.NET Core 2.0学习笔记(二): ef core2.0 及mysql provider 、Fluent API相关配置及迁移
- asp.net core webapi项目配置全局路由的方法示例
- ASP.NET 配置概览
- ASP.Net API和System.Web的配置
- asp.net core webapi项目配置全局路由
- ASP.NET Core的身份认证框架IdentityServer4--(2)API跟WEB端配置
- ASP.NET Web API & Backbone (2) —— CRUD
- Windows2003中配置运行ASP.net程序
- ASP.NET中使用web.config配置web应用程序中的数据库连接
- ASP.NET Web API RC版本新特性:Web API的帮助文档制作
- ASP.NET Core WebApi 返回统一格式参数(Json 中 Null 替换为空字符串)
- ASP.NET Core的配置(1):读取配置信息
- Asp.net mvc 3 file uploads using the fileapi
- ASP.NET配置文件Web.config 详细解释
- [转]Win 2000下配置Asp.NET开发环境
- Win 2003中配置ASP.net环境