Web应用程序的配置和优化学习目标•ASP.NET配置的基本概念。•配置ASP.NET应用程序。•ASP.NET应用程序的调试和跟踪。•ASP.NET应用程序的性能优化。•部署管理ASP.NET应用程序。配置ASP.NET应用程序配置文件Web.config配置文件层次结构和继承配置文件层次结构和继承举例对ASP.NET页面,其配置设置的继承顺序如下:Web.config配置文件格式•web.config配置文件是基于XML的文本文件,它可以包含标准的XML文档元素,包括标记、注释、文本、cdata等。•配置信息分为两个主区域:–配置节处理程序声明区域–配置节设置区域。标准ASP.NET配置节•ASP.NET提供了若干标准配置节处理程序,用于处理web.config文件中的配置设置。•标准的ASP.NET配置节包括:标准ASP.NET配置节(续)标准ASP.NET配置节(续)Web.config文件的配置方法•直接编辑Web.config文件•使用ASP.NET配置系统所提供的工具来配置应用程序。•配置工具包括错误检测功能,因而比文本编辑器简单可靠。ASP.NET应用程序的错误类型•ASP.NET应用程序的错误一般包括下列四种类型:–(1)配置错误–(2)解析器错误–(3)编译错误–(4)运行时错误配置错误•由Web.config文件中的格式错误引起的错误归类为配置错误。•例如,下面代码段中appSettings开始标记没有对应的/appSettings结束标记,将产生一个配置错误。configurationappSettingsaddkey=myKeyvalue=myValue/configuration解析器错误•由ASP.NET页面中的错误语法引起的错误归类为解析器错误。•例如,如果default.aspx的代码中缺少head标记所对应的结束标记:/head,则会产生解析器错误。headrunat=servertitleUntitledPage/title/head编译错误•由VisualBasic编译器引起的错误归类为编译错误。•例如,下列Page_Load代码中,包含两处错误:语句结束漏了分号、引用了Label1不存在的Value属性。protectedvoidPage_Load(objectsender,EventArgse){Response.Write(haserrorsemi-colon)Label1.Value=Hello!;}运行时错误•当ASP.NET页面执行时产生的错误归类为运行时错误。运行时错误一般由于应用程序逻辑问题引起,•例如除数为0,或引用了没有初始化的对象等。ASP.NET应用程序的错误调试方法•操作实例11-1:使用断点单步调试ASP.NET应用程序DEMO:使用断点单步调试ASP.NET应用程序•操作实例11-3:使用断点单步调试ASP.NET应用程序•开发任务:通过编制两个整数相除的小程序,来调试ASP.NET应用程序。设置断点,并单步运行程序以调试ASP.NET应用程序,查看变量的中间结果ASP.NET应用程序的跟踪概述启用ASP.NET页面的跟踪•示范指令代码如下:%@PageTrace=trueTraceMode=SortByCategory%启用ASP.NET应用程序的跟踪•应用程序跟踪将收集诊断信息和自定义跟踪消息。•要启用应用程序跟踪,必须在应用程序配置文件web.config中添加下面配置代码:configurationsystem.webtraceenabled=true//system.web/configuration•通过请求应用程序根目录中特别映射的“trace.axd”URL,可以访问收集到的各种跟踪信息。添加自定义跟踪消息•启用跟踪后,可以使用TraceTrace.Write和Trace.Warn方法编写调试语句。•例如,下面代码片断输出自定义跟踪消息:–Trace.Write(用户代码开始执行…)•操作实例11-2:跟踪和监视ASP.NET应用程序性能优化的基本概念禁用服务器控件视图状态•在不需要保存服务器控件视图状态的情况下,可以通过设置其属性EnableViewState=false,以提高应用程序运行性能。禁用会话状态避免对往返行程执行不必要的处理•编写处理服务器控件回发处理的代码,需要进行额外的往返行程(Roundtrips)。•使用Page.IsPostBack属性(false表示首次请求)有条件地执行代码初始化代码,从而提高应用程序的性能避免到服务器的不必要的往返行程•处理服务器控件回发处理的代码需要额外的往返行程,每次往返行程都会影响系统的性能。•避免使用导致到服务器的往返行程的代码,可以提高页的性能并改善用户体验。使用缓存提高应用程序性能•使用缓存的概念可以提高应用程序的性能,缓存包括三种类型:•(1)页面输出缓存•(2)页面片断缓存•(3)页面数据缓存页面输出缓存页面片断缓存页面数据缓存•在Web数据库应用程序中,数据库表数据的抽取往往需要耗费大量的资源和时间。•使用页面数据缓存,也可以大大提高应用程序的性能。缓存应用程序数据概述添加数据项到缓存•使用键和值直接设置项向缓存添加项–Cache[CacheItem1“]=CachedItem1•使用Insert/Add方法将项添加到缓存中–Cache.Insert(CacheItem2,CachedItem2)使用数据缓存•要从缓存中检索数据,可以通过存储缓存项的键来访问。•由于缓存中所存储的信息有可能被清除,所以建议首先判断该缓存项是否在。例如:StringcachedString;if(Cache[CacheItem]!=null)cachedString=Cache[CacheItem].ToString();else{Cache.Insert(CacheItem,Hello,World.);cachedString=Cache[CacheItem].ToString();}从缓存中删除项•操作实例11-3:使用页面输出缓存调整ASP.NET应用程序性能ASP.NET应用程序的部署概述•操作实例11-4:发布和测试Web教务管理系统(复制网站)•操作实例11-5:发布和测试Web教务管理系统(XCOPY)复习题•单选题•填空题•思考题•实践题