asp的服务器端编程通常采用 asp的开发历程
大家好,今天给各位分享asp的服务器端编程通常采用的一些知识,其中也会对asp的开发历程进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!
请问一个asp,net的问题
我想通过例子你很快就会明白了:
<?xml version="1.0"?>
<!--
注意:除了手动编辑此文件以外,您还可以使用
Web管理工具来配置应用程序的设置。可以使用 Visual Studio中的
“网站”->“Asp.Net配置”选项。
设置和注释的完整列表在
machine.config.comments中,该文件通常位于
\Windows\Microsoft.Net\Framework\v2.x\Config中
-->
<configuration xmlns="">
<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配置的安全和使用受保护的配置加密配置信息。
选择企业网站服务器应该注意哪些
企业网站选择网站空间我觉得首先应该了解自己公司企业网站是用的什么语言编程和所使用的数据库,根据你们公司的网站建设方案选择服务器的操作平台,这三点很重要,举个例子,比如你的网站是使用php+mysql架构的,那么你购买的网站空间就必须支持PHP和MYSQL,不然你就不能运行你的网站程序。其次在购买的时候应该详细咨询空间有什么限制,比如IIS连接数,有的不限制IIS而限制CPU峰值,反正道理是差不多,要是合租空间或是虚拟主机这两就很重要,比如IIS连接为100,那么你网站在同一时间内服务器可以接受的访问数只能是100次,可以简单的理解为在同一时间内允许向服务器发出读取的线程数为100次。
下面是一些资料供你参考:
IIS连接数是指在同一时间内服务器可以接受的访问数,可以简单的理解为在同一时间内允许向服务器发出读取的线程数。
我们分为5种情况向大家介绍:(以100M空间限制50IIS为例)
1、用户单线程或多线程下载你的站点文件,结束后正常断开,这些连接是按照瞬间计算的,就是说50IIS的空间瞬间可以接受同时最多可接受50线程下载。
注意:目前一些多线程工具如迅雷、网际快车BT版等,可同时执行80线程下载,这样即使只有一个用户正在下载你的某一站点文件,此时网站同样是打不开。
2、当一个网页被浏览,服务器就会和浏览者的浏览器建立链接,每个链接表示一个并发。当页面包含很多图片,图片并不是一个一个显示的,服务器会产生出多个链接同时发送文字和图片以提高浏览速度。如果页面中的图片越多那么服务器的并发链接数量就越多。当图片或页面被服务发送后服务器就关闭链接用于和其他请求者建立链接。
注意:有些用户说打开了1个浏览窗口就是打开了1个IIS连接数,所以理论上50个IIS的空间可以容纳50个人同时在线,这种说法和推理是错误的.,假如打开一个页面,这个页面中有两张图片,那么打开这个页面时,需要的IIS线程数是3(读取页面的html代码需要1个,两张图片也各需要1个).。
3、用户打开你的页面,就算停留在页面没有对服务器发出任何请求,那么在用户打开一面以后的15分钟内也都要算一个在线,就是说50IIS的网站15分钟内可以接受不同用户打开50个页面
注意:同样有些用户用户也提出50IIS的主机为什么计数器显示在线人数5人就打不开了,道理也是一样的。在线人数按照用户最后一次点击(发出请求)以后的15分钟计算,在这个15分钟内不管用户怎么点击(包括新窗口打开)计数器都是按照一人在线计算,而IIS数不是这样的。正确的解释应该是:访问您的网站有50个连接,其中正常访问论坛的人有5个。显然在线人数和IIS连接数的概念不同。
4、当你的页面内存在框架(Iframe),那么每多一个框架就要多一倍的在线!因为这相当于用户同一时间向服务器请求了多个页面。
5、部分用户的ASP页面调用太多页面,有的达到10几个之多,这样也是严重耗费IIS数。
6、当用户打开页面然后正常关闭浏览器,用户的在线人数也会马上清除。限制CPU的分配数是指什么?
双至强2.8处理器,也就是说一款限制百分之8 CPU的主机,它的数据处理能力已经是相当强大了(几年前一个P3服务器同样也是跑几十个站),当你的站程序在执行中所需CPU超过限制数,造成线程堵塞,服务器无法发送数据时,IIS就会重新单独启动你的站点,过程会持续30秒左右,此时站点会无法访问。
有些用户提出那百分之8的CPU限制到底可以支持到多少IIS连接数?
在线人数需要看你的程序情况,
1、 HTML站点同时在线多少人都不会超限,因为HTML不是通过服务端解释,而是通过客户端的浏览器解释,所以在带宽没有问题的情况下执行HTML是没有限制的。
2、 ASP程序的差别就很大,假如百分之8的CPU限制IIS数,正常情况下没有死循环、死锁的程序大概在800-5000。
3、其他PHP、CGI、NET、等程序会执行效率会优于ASP文件2-3倍。
如何选购数据主机?
目前数据虚拟主机分为不限制IIS和限制IIS两大类。
1、如果您的站点是企业站,建议您选择限制1000IIS的,通常企业站1000IIS足够使用,所有企业站点流量和资源消耗都不大,这样就保证了主机的稳定和速度,当然这也可以根据你的实际情况来选择。
2、如果你的站点为其他类型站点,那么IIS连接数就将是你站点的命根子,因为一个网站生存靠的是点击率和在线人数,这样我建议您选择不限制IIS的主机。
如何使用数据主机?
只对CPU做限制,所以就常见较消耗CPU情况给大家介绍。
1. MDB数据库通常大于10M就会非常消耗资源,你可以检查站点文件里MDB、ASP、ASA、等大于10M的文件进行优化处理。
2. ASP文件死循环、死锁问题。这也是目前困扰大部分初级用户的问题,好多用户都是选择一些免费下载代码,没有进行优化和检查,这样就存在很多调用不合理、死循环、死缩及安全隐患。这样的程序即使是在本地进行单机调试的时候CPU都会跑满,到服务器上就更是厉害。
3.大的下载文件同样会消耗很多CPU资源。前面我们已经讲到目前一些多线程工具如迅雷、网际快车BT版等,可同时执行80线程下载。另外盗链现象也很严重,您可以经常尝试把一些下载文件的地址做些变更,防止其他用户盗链。
4.尽量采用升成HTML页面技术,减少调用数据库次数,目前门户网站均采用此技术来加快网站浏览速度,同时也是网站发展趋势。
另外建议购买企业站的空间建议到正埆的IDC商那里购买,比如新网和万网
各种编程语言的主要用途
CGI
CGI(common Gateway Interface,公共网关接口)。CGI是信息服务器主机对外信息服务的标准接口,为了向客户端提供动态信息而制定。通过专门编写CGI脚本程序(在CGI控制下运行得程序,通常称为CGI程序),不仅可以生成静态的内容,而且可以生成完全无法预见的动态的内容!比如雅虎、搜狐等搜索引擎提供的强大搜索功能便是利用CGI实现的。CGI脚本程序可以用C、C++等语言在多种平台上进行开发。无需太大修改就可以从一个平台移植到另一个平台上运行,具有很好的兼容性。
ASP
ASP是微软公司推出的意图取代CGI的新技术。通过它,用户可以使用几乎所有的开发工具来创建和运行交互式的动态网页,如返馈表单的信息收集处理、文件上传与下载、聊天室、论坛等等,实现了CGI程序的功能介是又比CGI简单,而且容易学习。由于A SP使用基于开放设计环境的Active X技术,用户可以自己定义和制作组件加入其中,使自己的动态网页具有几乎无限的扩充能力。它还可利用ADO(Active Data Object,微软的一种新的数据访问模型)方便地访问数据库,能很好地对数据进行处理。
Script
脚本语言是介于HTML(HyperText Markup Language,超文本标示语言)和Java、C++和Visual Basic之类的编程语言之间的语言。它的语法和规则没有可编译的编程语言那样严格和复杂。传统的HTML是静态的,为增强网页的动态功能,一些厂商先后推出了自己的Script脚本语言,其中Netscape推出了JavaScript(for客户端和 for服务端两种),微软则推出了VBScript和ASP两种,用于服务器端和客户端程序的编写。
JavaScript是一种基于对象(Object)和事件驱动(Event Driven)并具有安全性能的脚本语言。它与Java不同:JavaScript主要用于HTML的页面,脚本嵌入在HTML的源码中;而Java是一个独立的、完整的编程语言,既可以在Web中应用,也可以用于与Web网无关的情况。另外,JavaS cript编写的程序不必在运行前编译,它们可以直接写入Web页面中并由调用它们的浏览器来解释执行。这样,一些基本交互作用就不用在服务器端完成,提高了客户端的响应时间。
VBScript
为了适应Internet上的应用,Microsoft公司把用于应用程序描述的Visual Basic语言压缩成一个更合理的子集,称为Visual Basic Scripting Edition,简称VBScript。它也是一种HTML嵌入脚本语言,具有易学易用等特点。如果你已了解Visual Basic或Visual Basic for Applications,就会很快熟悉VBScript。Microsoft公司将VBScript语言作为实施其ActiveX脚本化的最佳选择,用户可以采用小的相互操作的部件一起来完成工作,使得应用程序的功能列加强大。
Perl
Perl是Practical Extraction and Report Language(实用摘录和报告语言)的缩写,由Larry Wall于1986年开发成功。当初的目的主要是Unix环境下从多个文本文件中产生报表,后来成为许多程序员工具箱中最受欢迎的工具,其发展速度和Unix内核的成长速度相仿。现在Perl已经发展到5.0版本,并移植到了各种平台。
PHP,一个嵌套的缩写名称,是英文“超级文本预处理语言”(PHP:Hypertext Preprocessor)的缩写。PHP是一种 HTML内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的“嵌入HTML文档的脚本语言”,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。PHP独特的语法混合了 C、Java、Perl以及 PHP自创新的语法。它可以比 CGI或者 Perl更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;与同样是嵌入HTML文档的脚本语言JavaScript相比,PHP在服务器端执行,成分利用了服务器的性能;PHP执行引擎还会将用户经常访问的PHP程序驻留在内存中,其他用户在一次访问这个程序时就不需要诚信编译程序了,只要直接执行内存中的代码就可以了,这也是PHP高效率的体现之一。PHP具有非常强大的功能,所有的CGI或者J avaScript的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。
Python
是一种跨平台的开发语言,它可以运行在已知的各种操作系统之上,包括windows、Mac OS、Unix、BSD、Palm等。python是一种支持扩展的开发语言,主要的扩展变种有CPython、JPython、PerlPython。它们分别使用C、Java、Perl做它的扩展接口基础环境的。更准确的说,Python也可以是一种跨语言的语言。
ColdFusion
美国的一对兄弟allire,在为自己的客户解决数据库访问的问题时,感觉到了cgi程序在编写和维护上的难度是不能容忍的困难。于是,具有计算机天赋的Jeremy Allire便在1995年编写了一种快速响应且易于编写的动态脚本语言,叫做coldfusion,一经推出,便震撼整个网络行业。之后,兄弟俩看到了coldfusion的发展前途,便成立了Allire公司(后来被macromedia收购)。之后的几年,全球500强中的一半都采用了coldfusion来解决公司不同情况的问题。通过不断的版本修改和开发者的不断壮大,Coldfusion后来发展成为业界知名的企业级解决方案的开发首选。现在,为了产品线的统一,为了工业标准的统一,为了完全兼容Java平台,Macromedia发布了ColdfusionMX。而众位以前经常看到的Neo这个词则是macromedia对于使用新一代coldfusion开发行业解决方案的编码名称。
关于本次asp的服务器端编程通常采用和asp的开发历程的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。