请问一个asp,net的问题?

请问asp.net中配置节一般如何用,书上我看不明白,请高手指教,,说的越详细越好,还要通俗易懂,,,谁说的能让我明白,,我给他家分,,我会不停的加分值的,,!!!小弟在线等!!

我想通过例子你很快就会明白了:

<?xml version="1.0"?>
<!--
注意: 除了手动编辑此文件以外,您还可以使用
Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
“网站”->“Asp.Net 配置”选项。
设置和注释的完整列表在
machine.config.comments 中,该文件通常位于
\Windows\Microsoft.Net\Framework\v2.x\Config 中
-->
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<connectionStrings>
<add name="NorthwindConnectionString" connectionString="Data Source=8G4K5AU68FMJYV2\SQLEXPRESS;Initial Catalog=Northwind;Persist Security Info=True;User ID=sa;Password=123456"
providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<anonymousIdentification enabled="true"/>

</system.web>
</configuration>

这个配置文件的内容很少,但是包括非常重要的一节:configuration ->connectionStrings>.请注意,Web.Config文件是以XML 格式存储的,因此里边的信息采用"树型结构",就那上面来看,<connectionStrings />存储于<configuration />结,因此<connectionStrings />就是<configuration />所要表述的成员之一,也就是说每一个结点都存储应用程序的一些信息,而它们都是用过XML 属性结构归类的.我们要实现ASP.NET的应用程序的灵活性,很大程度上依赖了这些配置文件.举一个简单的例子:当我们在.ASPX文件中连接数据源时,需要先定义连接字符串,但是一套完整的应用程序包括很多数据源,也包括很多连接数据源的代码,因此你必须考虑把这些连接字符串统一的管理,统一的调用,就像定义了一个"全局变量",随时随地,任何时间任何地点(程序集)都可以调用出来,当我们需要更改连接字符的时候,也只需要在"全局变量"中修改即可.呵呵,有没有发现这个ASP.NET中最令人兴奋的技术呢?那么你就试试吧,下面是间单的例子:

class OleDb
{
public static void ConnectionDleDb()
{

using (OleDbConnection conn = new OleDbConnection(GetConnSring()))
{
OleDbCommand command = conn.CreateCommand();
command.CommandText = GetCommandString();
try
{
conn.Open();
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.Write("/t{0}/t{1}",reader[0],reader[1]);
Console.WriteLine("/n");
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
throw;
}
}
}
private static string GetConnSring()
{
ConnectionStringSettings settings =
ConfigurationManager.ConnectionStrings["NorthwindConnectionString"];
return (settings.ConnectionString);
}
private static string GetCommandString()
{
return (@"SELECT CategoryID, CategoryName FROM dbo.Categories;");
}
}

在这里,我们正好用到了Web.Config配置文件中的NorthwindConnectionString项,它存储了我们定义的一个连接字符串,在类OleDb中,方法GetConnSring使用ConfigurationManager类将Web.Config配置文件中的值取出,ConfigurationManager类则是.NET公开所的,提供给程序员的Web.Config文件操作类,在.NET类库中包含了很多实现类似功能的类,比如"成员资格提供程序","角色提供程序",它们与Web.Config配置文件配合组成了非常高效的应用程序管理机制.

以下是MSDN的相关文章:

---------------------------------------------------
使用 ASP.NET 配置系统的功能,可以配置整个服务器上的所有 ASP.NET 应用程序、单个 ASP.NET 应用程序、各个页面或应用程序子目录。可以配置各种功能,如身份验证模式、页缓存、编译器选项、自定义错误、调试和跟踪选项等等。

以下各节描述了 ASP.NET 配置系统的功能。

有关配置 .NET Framework 客户端应用程序的信息,请参见配置应用程序。

注意
ASP.NET 配置系统的功能仅适用于 ASP.NET 资源。例如,Forms 身份验证仅限制对 ASP.NET 文件的访问,而不限制对静态文件或 ASP(传统型)文件的访问,除非这些资源映射到 ASP.NET 文件扩展名。要配置非 ASP.NET 资源,应使用 Internet 信息服务 (IIS) 的配置功能。有关信息,请参见 Working with the IIS Metabase(使用 IIS 元数据库)和 IIS Metabase Property Reference(IIS 元数据库属性参考)。

配置文件
ASP.NET 配置数据存储在全部命名为 Web.config 的 XML 文本文件中,Web.config 文件可以出现在 ASP.NET 应用程序的多个目录中。使用这些文件,可以在将应用程序部署到服务器上之前、期间或之后方便地编辑配置数据。可以通过使用标准的文本编辑器、ASP.NET MMC 管理单元、网站管理工具或 ASP.NET 配置 API 来创建和编辑 ASP.NET 配置文件。

ASP.NET 配置文件将应用程序配置设置与应用程序代码分开。通过将配置数据与代码分开,可以方便地将设置与应用程序关联,在部署应用程序之后根据需要更改设置,以及扩展配置架构。

有关如何对 ASP.NET 配置文件中的数据进行组织的更多信息,请参见 ASP.NET 配置文件。ASP.NET 配置设置 中描述了可用的配置设置。

配置文件层次结构和继承
每个 Web.config 文件都将配置设置应用于它所在的目录以及它下面的所有子目录。可以选择用子目录中的设置重写或修改父目录中指定的设置。通过在 location 元素中指定一个路径,可以选择将 Web.config 文件中的配置设置应用于个别文件或子目录。

ASP.NET 配置层次结构的根为 systemroot\Microsoft.NET\Framework\versionNumber\CONFIG\Web.config 文件,该文件包括应用于所有运行某一具体版本的 .NET Framework 的 ASP.NET 应用程序的设置。由于每个 ASP.NET 应用程序都从根 Web.config 文件那里继承默认配置设置,因此只需为重写默认设置的设置创建 Web.config 文件。

注意
根 Web.config 文件从 Machine.config 文件那里继承一些基本配置设置,这两个文件位于同一个目录中。其中的某些设置不能在 Web.config 文件中被重写。有关更多信息,请参见 ASP.NET 配置文件层次结构和继承。

运行时,ASP.NET 使用 Web.config 文件按层次结构为传入的每个 URL 请求计算唯一的配置设置集合。这些设置只计算一次,随后将缓存在服务器上。ASP.NET 检测对配置文件进行的任何更改,然后自动将这些更改应用于受影响的应用程序,而且大多数情况下会重新启动应用程序。只要更改层次结构中的配置文件,就会自动计算并再次缓存分层配置设置。除非 processModel 节已更改,否则 IIS 服务器不必重新启动,所做的更改即会生效。

有关 ASP.NET 配置层次结构的工作原理的更多信息,请参见 ASP.NET 配置文件层次结构和继承和 ASP.NET 配置方案。

直接编辑配置文件
可以使用文本编辑器或 XML 编辑器来直接编辑配置文件。有关正确的语法,请参见 ASP.NET 配置设置和 常规配置设置 (ASP.NET) 中有关配置节的参考主题。有关更多信息,请参见编辑 ASP.NET 配置文件。

配置工具
使用 ASP.NET 配置系统所提供的工具来配置应用程序比使用文本编辑器简单,因为这些工具包括错误检测功能。

ASP.NET MMC 管理单元
用于 ASP.NET 的 Microsoft 管理控制台 (MMC) 管理单元提供一种在本地或远程 Web 服务器上的所有级别操作 ASP.NET 配置设置的方便途径。ASP.NET MMC 管理单元使用 ASP.NET 配置 API,但是它通过提供一个图形用户界面 (GUI) 来简化配置设置的编辑过程。另外,该工具还支持多个 ASP.NET 配置 API 功能,这些功能控制 Web 应用程序是否可以继承设置,并管理配置层次结构各级别之间的依赖性。

注意
若要使用 ASP.NET MMC 管理单元,必须使用具有管理权限的帐户登录到计算机。

ASP.NET MMC 管理单元在虚拟目录的属性页上显示为“ASP.NET”选项卡。

有关更多信息,请参见 ASP.NET MMC 管理单元。

网站管理工具
对网站具有管理权限的任何人都可以使用网站管理工具来管理该网站的配置设置。网站管理工具旨在为各个网站中最常用的配置设置提供一个用户友好的图形编辑工具。由于网站管理工具使用基于浏览器的界面,因此它允许您远程更改网站设置,这对于管理已经部署到成品 Web 服务器的站点(如承载的网站)非常有用。

网站管理工具与 ASP.NET MMC 管理单元在若干方面存在不同。例如,ASP.NET MMC 管理单元最适于管理员级别的配置,因为它提供对 Web 服务器上的整个配置文件层次结构的访问,而不是提供对单个网站的配置设置的访问。此外,您还必须是管理员才能使用 ASP.NET MMC 管理单元,而网站管理工具只允许各个网站所有者在他们具有管理权限的站点的根目录中配置 Web.config 文件。最后,您不能使用 ASP.NET MMC 管理单元来远程管理 IIS,但是,网站管理工具的浏览器界面允许远程配置 IIS 6.0 和更高版本的 IIS。

网站管理工具包括一个选项卡式界面,该界面在下列选项卡上对相关的配置设置进行分组:

“安全”选项卡,其中包含有助于保护 Web 应用程序资源并管理用户帐户和角色的设置。

“配置文件”选项卡,其中包含用来管理网站如何收集访问者信息的设置。

“应用程序”选项卡,其中包含用来管理影响 ASP.NET 应用程序的配置元素的设置。

“提供程序”选项卡,其中包含用来添加、编辑、删除、测试或分配应用程序提供程序的设置。

网站管理工具是随 .NET Framework 2.0 版自动安装的。有关该工具如何工作的信息,请参见 ASP.NET 网站管理工具。

命令行工具
.NET Framework 包括几个执行特定配置操作的命令行工具。例如,使用 Aspnet_regiis.exe 工具,可以指定将哪个版本的 .NET Framework 应用于 ASP.NET 应用程序。有关更多信息,请参见 .NET Framework 工具。

ASP.NET 配置 API
ASP.NET 配置系统提供一个完整的托管接口,使用该接口,可以通过编程方式配置 ASP.NET 应用程序,而不必直接编辑 XML 配置文件。另外,ASP.NET 配置 API 还执行下列任务:

通过为配置层次结构中所有级别的数据提供一个集成视图来简化管理任务。

支持部署任务,包括创建配置和用一个脚本配置多台计算机。

为构建 ASP.NET 应用程序、控制台应用程序和脚本、基于 Web 的管理工具和 MMC 管理单元的开发人员提供单一的编程接口。

防止开发人员和管理员进行无效的配置设置。

允许您扩展配置架构。您可以定义新配置参数并编写配置节处理程序以对它们进行处理。

提供从当前正在运行的应用程序获取配置信息的静态方法,以及从单独的应用程序获取配置信息的非静态方法。使用静态方法可以提高应用程序的运行速度,但是这些方法只能从您要获取其配置数据的应用程序内部使用。

有关更多信息,请参见 ASP.NET 配置 API。

配置安全性
ASP.NET 配置系统有助于防止未经授权的用户访问配置文件。ASP.NET 将 IIS 配置为拒绝任何浏览器访问 Machine.config 或 Web.config 文件。对于试图直接请求配置文件的任何浏览器,都返回 HTTP 访问错误 403(禁止)。

另外,将禁止一个 ASP.NET 应用程序中的配置文件访问其他 ASP.NET 应用程序中的配置设置,除非您的配置应用程序在完全信任模式下以对其他应用程序中的配置文件具有读取权限的帐户运行。

有关更多信息,请参见保证 ASP.NET 配置的安全和使用受保护的配置加密配置信息。

参考资料:http://hi.baidu.com/prcv

温馨提示:答案为网友推荐,仅供参考
第1个回答  2006-08-13
现在进行 Web 开发时,您有许多选择。这些方法中许多都涉及到预处理 — 即,利用特定的标记将代码嵌入到 HTML 页面中,这些标记告诉预处理器,它们包含代码,并且应对它们作出处理。与 CGI 非常相似,这些代码在服务器上运行,并返回一些内容,这些内容表现为发回给浏览器的结果 HTML 页面的部分外观。开放源代码脚本语言 PHP 和 Microsoft 的 ASP.NET 框架中的语言都属于这种类型;JavaServer Pages (JSP) 和 Perl/Mason 也以这种方式运行。

在此,我将重点讲述 PHP — Oracle 已选择合并到其产品中的技术 — 和 ASP.NET。我将概述两者的各种优势和弱点,并着重讨论那些将帮助您决定开发项目应选择哪种技术的因素。有很多因素需要考虑,不同的项目可能诉诸于不同的技术。总之,您将看到在价格、速度和效率、安全性、跨平台支持等方面的逐项比较,以及开放源代码解决方案的优势。

什么是 ASP.NET

ASP 最新的版本 ASP.NET 并不完全与 ASP 早期的版本后向兼容,因为该软件进行了完全重写。早期的 ASP 技术实际上与 PHP 的共同之处比与ASP.NET 与 PHP的共同之处多得多,ASP.NET 是用于构建 Web 应用程序的一个完整的框架。这个模型的主要特性之一是选择编程语言的灵活性。ASP.NET 可以使用脚本语言(如 JScript、VBScript、Perlscript 和 Python)以及编译语言(如 VB、C#、C、Cobol、Smalltalk 和 Lisp)。新框架使用通用的语言运行环境 (CLR);先将您语言的源代码编译成 Microsoft 中间语言代码,然后 CLR 执行这些代码。

这个框架还提供真正的面向对象编程 (OOP),并支持真正的继承、多态和封装。.NET 类库根据特定的任务(例如,使用 XML 或图像处理)组织成可继承的类。

除了编程语言和方法之外,当您用 ASP.NET 编程时,可以用 ODBC 来集成数据库;ODBC 提供了一组一致的调用函数来访问您的目标数据库。

优势和弱点

ASP.NET 的优势很明显在于它简洁的设计和实施。这是面向对象的编程人员的梦想:语言灵活,并支持复杂的面向对象特性。在这种意义下,它真正能够与编程人员现有的技能进行互操作。

ASP.NET 的另一个优势是其开发环境。例如,开发人员可以使用 WebMatrix(一个社区支持的工具)、Visual Studio .NET 或各种 Borland 工具(如 Delphi 和 C++ Builder)。例如,Visual Studio 允许设置断点、跟踪代码段和查看调用堆栈。总而言之,它是一个复杂的调试环境。许多其他第三方的 ASP.NET IDE 解决方案也将必然出现。

但是ASP.NET强健性,是以损失效率为代价的。ASP.NET 在内存使用和执行时间方面耗费非常大,这大部分归因于较长的代码路径。对基于 Web 的应用程序,这些局限可能是一个严重的问题,因为在 Web 上,您的应用程序可能扩展为每秒成千上万的用户。内存使用率还可能成为 Web 服务器上的一个问题。

什么是 PHP

PHP 是基于预处理 HTML 页面模型的一种脚本语言。当 Web 服务器中的 PHP 预处理器发现像下面这样的 PHP 语言标记时,将调用 PHP 引擎来执行该代码:

<?php
代码
?>

使用过命令式编程语言的编程人员都将会对 PHP 非常熟悉;您会发现它与 Perl、C 和 Java 在语法上很相似。严格来讲,Java 是一种命令式编程语言,但它也利用了面向对象的结构和概念。PHP 在适宜的时候借鉴了这种结构,但它不是一种纯粹的 OOP 语言。

在上面对 ASP.NET 的讨论中,我提到了 ODBC 驱动程序,以及在考虑数据库抽象的情况下如何构建应用程序。在 PHP 中,您也可以使用 ODBC 与数据库对话,因此您已经有了一系列支持的数据库可供选择。也有 MySQL、Oracle 和 Postgres 的原生驱动程序。此外,如果要使用 Oracle,则有一个特殊的 OCI8 库将提供对 Oracle 更多访问功能,从而允许您使用诸如 LOB、BLOB、CLOB 和 BFILE 之类的特性。

这时您可能会问“为什么与数据库相关的资料库被称为 PHP 的特性?”数据库抽象或独立性是您在设法构建使用多种数据库或需要在数据库间移植(例如,从开发到投产时的移植)的应用程序时所要考虑的一个因素。而这些确实是应该关心和考虑的。

但正如 Tom Kyte 在他的新书 — Effective Oracle by Design (Oracle 出版社) — 中指出的那样,数据库相关性将成为您真正的目标,因为这将使您在该技术中的投资最大化。如果您对 Oracle 进行一般的访问 — 无论通过 ODBC 或 Perl 的 DBI 库,那么您将无法使用其他数据库所不具有的特性。此外,优化查询在各个数据库中各不相同。

Zend Technologies 是一家商业软件公司,它对 PHP 作出了重大贡献。它创建了一个称为 Zend Studio 的商业开发环境,这个环境包含了一个复杂的调试器、一个监测器和其他特性。该公司还构建了免费的 Zend Optimizer,它与 Zend Encoder 结合使用来编译 PHP 代码,以提升性能。还有其他商业产品,如 Zend Performance Suite,它可以缓存预编译的 PHP 页面,从而进一步显著提升总体性能。

优势和弱点

到测试版 4 为止,PHP 5 仍然有一些缺点,包括缺少异常和基于事件的错误处理例程 — 它们能够中断正常的程序流,并将代码跳转到一个特殊的错误处理部分。Java 也提供了用于错误处理的异常,而 C++ 通过 try、catch 和 throw 语法提供异常处理。当然,您仍然可以在 PHP 中管理错误,但其结构不是标准化的,因而使得编程人员必须使用自己的工具来决定执行错误处理的方式,这将导致更低的一致性并往往导致推倒重来。

另一个弱点是 PHP 的函数名是不区分大小写的。虽然这不是一个严重的缺点,但有些程序员可能会觉得这一特性很讨厌。

不过,我的确对 PHP 的对象模型心存疑虑。PHP 不是专门设计为一种面向对象的语言。这些特性中的一部分是后来添加的 — 尽管注意了保持与 PHP 3 的后向兼容性,因此两种模型的特性都留有一些。实际上,在 PHP 5 中这些弱点中的许多都得到了解决。请留心关注。

PHP 在一些领域中缺少什么,它就会在擅长的领域中迅速地弥补什么。价格合理,因此您不需要担心许可问题。它也是开放源代码的,因此整个社区将密切关注开发过程:发现错误并将其修复。如果有一个特性您不喜欢,那么您可以修改代码。此外,PHP 可与 Apache 自然结合:它可以作为一个模块编译,或直接编译成 Apache 二进制文件。

但在 Apache 上运行意味着,利用 PHP,您能够利用您已经在任意服务器投资,这是因为 Apache 能够运行在 Windows、Linux、Solaris 和各种其他 Unix 平台上。此外,使用拥有 Apache 的跟踪记录的 web 服务器意味着安全性能够保持在最高的优先级上。最后,PHP 拥有更小的代码路径,这意味着更少的分析和执行 PHP 页面服务器端代码,这将带来更高效的内存和使用率以及更快的运行。

在 PHP 5 中新增了哪些特性?

PHP 5 的第 4 个测试版在 2003 年 12 月底推出,更改日志清楚地显示已发现许多错误并已将其消除。虽然它仍在进行测试,但它的所有新特性和进步都确实值得关注。

PHP 5 的主要新成就在于它的异常处理和一个新对象,这个新对象引入的特性赋予了 PHP 真正的 OOP。异常处理无疑是 PHP 4 中最显著的缺憾之一,而 PHP 5 对异常处理的引入无疑是一个成熟的标志。异常处理意味着您在您的软件中拥有了根据语言定义的和标准化的错误处理方法。只需使用 try、catch 和 throw 方法,您的 PHP 代码就变得更加强健和简洁。

<?php

class blue {

function openFile ($inFile) {
if (file_exists ($inFile)) {
# code to open the file here
} else {
throw new Exception
("Cannot open file:$inFile");
}
}
}

$blueObj = new blue ();

try {
$blueObj->openFile ('/home/shull/file.txt');

} catch (Exception $myException) {
echo $myException->getMessage ();

# rest of exception handling code here
}

# rest of blue methods here

?>

新的对象模型为用 PHP 编写的程序带来许多积极的影响。在 PHP 4 中,当把将一个对象传递给函数或方法时,是通过值来传递的 — 除非您另行显式告知 PHP。这个过程意味着必须复制对象的一个副本(内存中的所有数据结构)。这个步骤使用内存,使得访问变慢和拥塞。而在 PHP 5 中,通常通过引用传递对象。

PHP 5 中新的面向对象的特性(包括构造器和析构器)值得关注。与 C++ 和 Java 相同,它们提供了一种标准方法,即通过一个构造器方法来创建对象、分配内存和执行任何必要的设置,并通过一个析构器方法来执行清理。

PHP 5 还引入了对类中方法和变量的更精细控制。在 PHP 4,一切都是公有的:您可以从类外或在继承类中访问您类中的变量。在 PHP 5 中,您仍然可以使变量或方法为公有,但您也可以使它们为私有,以使得只能在类本身中使用它们。还可以将它们保护起来,也就是说,可以在类内或在子类中查看方法和变量。

此外,PHP 5 引进了类型提示或更好的类型检查。当您将一个对象传递给一个例程时,PHP 能够检查它是否是正确的类型,并在检查失败时产生类型不匹配错误。

还有其他特性(如静态方法和变量以及抽象类)。
相似回答