项目八高速缓存跟踪检测站点部署.ppt

上传人:牧羊曲112 文档编号:5889583 上传时间:2023-08-30 格式:PPT 页数:63 大小:1.23MB
返回 下载 相关 举报
项目八高速缓存跟踪检测站点部署.ppt_第1页
第1页 / 共63页
项目八高速缓存跟踪检测站点部署.ppt_第2页
第2页 / 共63页
项目八高速缓存跟踪检测站点部署.ppt_第3页
第3页 / 共63页
项目八高速缓存跟踪检测站点部署.ppt_第4页
第4页 / 共63页
项目八高速缓存跟踪检测站点部署.ppt_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《项目八高速缓存跟踪检测站点部署.ppt》由会员分享,可在线阅读,更多相关《项目八高速缓存跟踪检测站点部署.ppt(63页珍藏版)》请在三一办公上搜索。

1、项目八 高速缓存跟踪检测站点部署,任务1 高速缓存任务2 跟踪检测任务3 站点部署,任务1 高速缓存,任务场景:,ASP.NET页面中执行最慢的操作是数据库访问,打开一个数据库连接并读取数据是比较耗时的。改进数据访问代码性能的最好方法是不访问它,利用ASP.NET 3.5的缓存机制可以将内存中的数据库记录缓存起来,直接从缓存中读取数据则快了很多。在本任务中,将创建一个电影浏览页面。当单击电影标题时,将显示选中电影的详细信息,并使用缓存机制来提高访问效率。,知识要点,缓存概述应用程序缓存添加缓存项读取缓存项删除缓存项页输出缓存使用页输出缓存什么是AJAX,8.1 缓存概述,缓存概述应用程序可以将

2、那些频繁访问的数据以及那些需要大量处理时间来创建的数据存储在内存中,从而提高性能两种基本的缓存机制来提高缓存功能应用程序缓存:它允许缓存所生成的数据。应用程序缓存提供了一种编程方式,通过键/值对将任意数据存储在内存中。使用应用程序缓存与使用应用程序状态类似,但是与应用程序状态不同的是,应用程序缓存中的数据是易失的,即数据并不是在整个应用程序生命周期中都存储在内存中。页输出缓存:它保存页处理输出,并在用户再次请求该页时调用所保存的输出,而不是再次处理该页。允许ASP.NET直接向客户端发送页响应,而不必再次经过页处理生命周期。,8.2 应用程序缓存,应用程序缓存是由类实现的,缓存实例(Cache

3、对象)是每个应用程序专用的,并且每个应用程序只有一个,通过Page类或UserControl类的Cache属性公开。缓存生存期依赖于应用程序的生存期,当重新启动应用程序后,将重新创建Cache对象,也就是说缓存数据将被清空。可以使用Cache对象访问应用程序缓存中的项,使用Cache对象的Insert方法向应用程序缓存添加项。,8.2 应用程序缓存,添加缓存项通过键和值直接设置项将项以键/值对的形式存放在Cache中,同样可以通过键来检索这些项。下述代码中,将商品分类信息缓存起来。CacheWareCategories=dsCategories;通过Insert方法将项添加到缓存中可以通过Ca

4、che类的Insert方法传递键和值来添加项,代码如下:Cache.Insert(WareCategories,dsCategories);,8.2 应用程序缓存,设置缓存依赖项在向缓存中添加项时,可以为Cache对象的Insert或Add方法传递CacheDependncy对象(或SqlCacheDependncy对象)的一个实例,以添加上表中的缓存依赖项。如果具有关联依赖项的项发生更改,缓存项便会失效并从缓存中删除。,8.2 应用程序缓存,添加缓存项的键依赖项如果一个缓存项依赖于一个依赖项,当依赖项更改时则缓存项也被删除。向CacheItem2添加依赖项CacheItem1,因此,只要Ca

5、cheItem1发生变化,则CacheItem2立即从缓存中删除。,Cache.Insert(CacheItem2,CacheValue2,new System.Web.Caching.CacheDependency(null,new string CacheItem1);,8.2 应用程序缓存,添加缓存项的文件依赖项缓存依赖项还可以依赖于文件,当文件被修改或删除时,缓存项将被删除。添加缓存项的SQL依赖项在实际应用中,往往需要将数据库中某个表的记录进行缓存。但是,由于数据库中的记录是随时变化的,如被某个用户修改了记录或添加、删除了记录等。在这种情况下,就可以为缓存项添加SQL依赖项,当数据库

6、记录发生变化时自动删除缓存项。,Cache.Insert(CacheItem2,CacheValue2,new System.Web.Caching.CacheDependency(Server.MapPath(XMLFile.xml);,8.2 应用程序缓存,添加缓存项的SQL依赖项通过使用SqlCacheDependency对象来创建依赖于数据库中的记录。,Cache.Insert(CacheItem2,CacheItem2,newSystem.Web.Caching.SqlCacheDependency(mydb,mytable);,8.2 应用程序缓存,设置缓存过期策略Cache类允许

7、自定义如何缓存项以及将它们缓存多长时间。对于存储在缓存中的易失项,通常设置一种过期策略,只要这些项的数据保持为最新,就将它们保留在缓存中。例:在添加一个绝对过期的缓存项,过期时间为30分钟。可以将缓存项的过期策略设置为可调性过期。代码如下:,Cache.Insert(CacheItem2,CacheItem2,null,DateTime.Now.AddMinutes(30),);,Cache.Insert(CacheItem2,CacheItem2,null,new TimeSpan(0,30,0);,8.2 应用程序缓存,设置缓存优先级在ASP.NET中,当对已过期的缓存项执行清理时,将根据

8、在创建缓存项时指定的优先级来进行清理。在服务器释放系统内存时,级别越低的缓存项越容易被清理。通常在使用Add或Insert方法添加项时指定一个CacheItemPriority枚举值,该枚举具有的成员如表,8.2 应用程序缓存,设置缓存优先级当使用Add或Insert方法创建缓存项时,可以通过传递参数CacheItemPriority指定其优先级:读取缓存由于缓存项在Cache中都是以键/值对形式存储的,可以通过键来检索被缓存的项在读取缓存项时,首先判断该缓存项是否存在,然后再进行访问。,Cache.Insert(CacheItem2,CacheItem2,null,null);,if(Cac

9、heCategories!=null)DataSet dsCategories=(DataSet)CacheCategories;,8.2 应用程序缓存,从缓存中删除项ASP.NET缓存中的数据是易失的,即不能永远保存。当缓存已满、项已过期或依赖项发生更改时,缓存中的数据会自动删除。除了允许从缓存中自动删除项之外,还可以显式删除项。下面,通过调用Cache类的Remove()方法来删除缓存项。,Cache.Remove(Categories);,8.3 页输出缓存,页输出缓存概述输出缓存使用户可以缓存ASP.NET页所发生的部分响应或所有响应。利用输出缓存,能有效提高Web应用程序的性能。对站

10、点中访问最频繁的页进行缓存可以大幅提高Web服务器的吞吐量。使用页输出缓存设置页的可缓存性当Web服务器项请求浏览器发送响应时,服务器会在响应的HTTP头中包含一个CacheControl字段,该字段定义可以缓存该页的设备。根据应用程序的需要,可以分别定义哪些设备应该或不应缓存各个ASP.NET页。通过在页面文件中使用OutputCache指令,以声明的方式设置页的可缓存性,还可以通过编程方式设置页面的可缓存性。,8.3 页输出缓存,OutputCache指令的属性,8.3 页输出缓存,OutputCacheLocation枚举类型例:设置页面可被缓存60秒,且缓存在服务器,8.3 页输出缓存

11、,还可以在Web.config文件中定义缓存配置文件,在配置文件中包括Location、Duration和varyByParam设置并设置页面中包含OutputCache指令,8.3 页输出缓存,缓存一个页面的多个版本ASP.NET允许在输出缓存中缓存同一页的多个版本。输出缓存可能会因下列因素而异。初始请求中的查询字符串,使用VaryByParam属性。回发时传递的控制值,使用VaryByControl属性。随请求传递的HTTP标头,使用VaryByHeader属性。发出请求的浏览器的主版本号,使用VaryByCustom属性。该页中的自定义字符串,使用VaryByCustom属性。在这种情况

12、下,可以在Global.asax文件中创建自定义代码以指定该页的缓存行为。,8.3 页输出缓存,部分页缓存部分页缓存通常通过用户控件来包含缓存的内容,然后将用户控件标记为可缓存来缓存部分页输出。该选项允许缓存页中的特定内容,而每次都重新创建整个页。在标识了要缓存的页的部分,并创建了用以包含这些部分中的用户控件后,还需确定用户控件的缓存策略。在.ascx文件中使用OutputCache指令来设置,8.3 页输出缓存,例8-1:部分缓存示例创建一个用户控件WebUserControl.ascx,放入一个Label控件用于显示当前时间,并设置该用户控件将缓存120秒。WebUserControl.a

13、scx页面代码 WebUserControl.ascx.cs类代码,被缓存的用户控件:,protected void Page_Load(object sender,EventArgs e)Label1.Text=();,任务实施,高速缓存实现影片信息浏览,任务实施,步骤1:创建网站,命名为CacheDemo步骤2新建数据表在SQL Server2005中新建名为“Movies”的数据库,并在其中添加名为“Movies”的表,用于保存电影信息。,CREATE TABLE dbo.Movies(MoviesId int NOT NULL PRIMARY KEY,MoviesTitle nvarc

14、har(50)COLLATE Chinese_PRC_CI_AS NULL,MoviesDirector nvarchar(50)COLLATE Chinese_PRC_CI_AS NULL,MoviesReleased datetime NULL),任务实施,步骤3:编辑Default.aspx页打开Default.aspx页,添加GridView控件用于显示电影标题列表步骤4-6:为GridView控件设置数据源选择数据表和列,选择名称为“Movies”表,并选中“MoviesId”和“MoviesTitle”列。,任务实施,步骤7:编辑GridView控件列步骤8:添加用户控件Movie

15、Detail.ascx添加用户控件MovieDetail.ascx,并添加DetailsView控件,用于显示电影详细信息步骤9:将用户控件应用到Default.aspx页中,任务实施,步骤10:浏览Default.aspx页,查看显示效果步骤11:编辑用户控件MovieDetail.ascx对MovieDetail.ascx用户控件进行缓存,任务实施,步骤12:编辑用户控件MovieDetail.ascx添加用于显示时钟的Label控件步骤13:浏览Default.aspx页选中一个电影标题显示效果,再选择另一个电影标题的显示效果。再次选中前一次选择的电影标题的显示效果,并刷新查看运行效果。

16、,任务2 跟踪检测,任务场景:,在Web应用程序开发过程中,开发人员可以使用内部的调试器发现并解决问题,但是在产品发布环境下,考虑到安全以及版权,使用调试器对于管理员来说是一个巨大的任务。为了收集统计,ASP.NET使用Trace对象跟踪HTTP头信息以及会话状态信息。,知识要点,跟踪概述页面级跟踪应用程序级跟踪,8.4 跟踪概述,跟踪概述利用跟踪技术,可以查看有关对ASP.NET页请求的诊断信息,允许开发人员在代码中直接编写调试语句,而不必将应用程序部署到成品服务器时从应用程序中删除这些语句,仅仅通过设置编译开关就可以完成。ASP.NET跟踪机制将消息写入显示在ASP.NET网页和跟踪查看器

17、Trace.axd中http:/localhost/网站名称/Trace.axd,8.4 跟踪概述,跟踪信息输出,8.5 页级跟踪,页级跟踪可以控制是否启用单个页面的跟踪。默认情况下,ASP.NET网页是禁用跟踪的。启用页级跟踪在页面文件的Page指令中设置Trace属性为true,即可启用页面级跟踪。可以设置TraceMode属性,指定跟踪消息出现的顺序。SortByTime:按跟踪消息的处理顺序对跟踪消息进行排序SorttByCategory,按在页或服务器控件代码的和方法调用中指定的类别对消息进行排序。默认值为SortByTime。,8.5 页级跟踪,跟踪变量通过Page类的Trace属

18、性来完成。Trace属性返回当前Web请求的TraceContext对象,该对象捕获并提供有关Web请求的详细信息。通过调用它的方 法(Write和Warn)可将消息追加到特定的跟踪类别。Write和Warn都可以输出跟踪信息,只是后者输出的文本显示为红色。,8.5 页级跟踪,跟踪变量例:启用default.aspx页的页面级跟踪,并在页面的默认事件Page_Load中自定义输出消息。,protected void Page_Load(object sender,EventArgs e)Trace.Warn(ASPNET_TRACE,Page_Load);,8.6 应用程序级跟踪,应用程序级跟

19、踪对应用程序的Web.config文件进行配置在所有页(除显示设置跟踪的页)中控制是否显示跟踪信息。页面级的跟踪设置将覆盖应用程序级的设置。即使应用程序级启用了跟踪,如果在页面中通过显式设置禁用了跟踪,则该页面上也不会显示跟踪信息如果在应用程序级禁用了启用跟踪,而页面上启用跟踪,也可以查看该页的跟踪信息。,8.6 应用程序级跟踪,应用程序级跟踪在Web.config文件中,通过对节点进行设置,即可启用或禁用应用程序级跟踪。节点的相关配置属性如表所示,8.6 应用程序级跟踪,例:为应用程序配置跟踪,且要求最多可收集40个请求的跟踪信息,并允许使用服务器以外的计算机上的浏览器显示跟踪查看器通过代码

20、配置,在浏览应用程序中的任何页面时都会看到跟踪消息。但若页面的Page指令中禁用了跟踪,将不会看到任何跟踪信息。,任务实施,跟踪检测Web页,任务实施,步骤1打开网站打开项目8任务1 中的CacheDemo网站步骤2:编辑Default.aspx页,启用跟踪修改Page指令步骤3:编辑MovieDetail.ascx用户控件为MovieDetail.ascx用户控件的Page_Load事件添加代码,设置跟踪系统时间,protected void Page_Load(object sender,EventArgs e)Label1.Text=();Trace.Warn(Label1.Text);

21、,任务实施,步骤4 浏览Default.aspx页,查看效果,任务3 站点部署,任务场景:,构建应用程序的一个重要方面还应考虑如何打包,以方便部署应用程序。大多数Web应用程序都仅在内部发布,此时使用简单的复制功能就足够了。但如果允许其他人购买或使用Web应用程序,就需要通过打包使部署过程尽可能简单。,知识要点,站点部署概述复制站点发布站点Web项目安装包,8.7 站点部署,概述部署ASP.NET Web站点的方式很多,包括站点复制、站点发布和创建安装程序包。复制站点复制站点是通过使用站点复制工具将Web站点的源文件复制到目标站点来完成站点的部署。站点复制工具站点复制工具可以在当前站点与另一个

22、站点之间复制文件。该工具支持同步功能,同步检查两个站点上的文件并确保所有文件都是最新的。在Visual Studio中创建任何类型的站点,包括本地站点、IIS站点、远程(FrontPage)站点和FTP站点。,8.7.1 复制站点,站点复制的优点只需将文件从站点复制到目标计算机即可完成部署可以使用Visual Web Developer所支持的任何连接协议部署到目标计算机如果使用的是其文件存储在中央服务器中的项目,则可以使用同步功能确保文件的本地和远程版本保持同步。站点复制的缺点站点是按原样复制的。如果文件包含编译错误,则只有用户运行引发该错误的网页时才会发现该错误由于没有经过编译,所以当用户

23、请求网页时将执行动态编译,并缓存编译后的资源。由于发布的是源代码,因此其代码是公开的,可能导致代码泄漏。,8.7.1 复制站点,使用站点复制工具连接到目标站点复制源文件可以使用站点复制工具复制构成站点的所有源文件,具体包括:ASPX文件。代码隐藏文件。其他Web文件(如静态HTML文件、图像等)。复制工具允许逐个复制文件或一次复制所有文件。通常第一次发布时使用一次性复制所有文件,而以后每次在本地修改了个别文件后则使用逐个复制的方法。,8.7.1 复制站点,使用站点复制工具同步文件将新建文件复制到没有该文件的站点中。复制已更改的文件,使得两个站点都具有该文件的最新版本。不复制未更改的文件。,8.

24、7.2 发布站点,发布站点概述发布站点将编译站点,并将输出复制到指定位置。主要完成以下任务:将App_Code文件夹中的页、源代码等预编译到可执行输出中。将可执行输出写入目标文件夹。同“站点复制”相比,发布站点具有以下优点:预编译过程能发现任何编译错误,并在配置文件中标识错误。单独页的初始响应速度更快,因为页已被编译过。不会随站点部署任何程序代码,从而保证了程序文件一定的安全性,并可以带标记保护发布站点;若不带标记保护发布站点,就将把.aspx文件按原样复制到站点中并允许在部署后对其布局进行更新。,8.7.2 发布站点,预编辑站点预编译实际执行的编译过程与通常在浏览器中请求页时发生的动态编译的

25、编译过程相同。预编译现有站点以通过预编译现有站点来稍稍提高站点的性能。在执行就地预编译时,将编译所有ASP.NET文件类型在预编译过程中,编译器将为所有可执行输出创建程序集,并将程序集放在“%SystemRoot%Microsoft.NETFrameworkversionTemporary ASP.NET Files”文件夹中,ASP.NET将通过此文件夹中的程序集来完成页请求。针对部署的预编译针对部署进行预编译,并将以布局形式创建输出,其中包括程序集、配置信息、有关站点文件夹的信息以及静态文件等。站点编译之后,可以使用类似FTP工具将其部署到成品服务器。部署完成之后即可运行。,8.7.2 发

26、布站点,预编译对文件的处理(只用于部署),8.7.2 发布站点,预编译对文件的处理(只用于部署),8.7.2 发布站点,预编译对文件的处理(用于部署和更新),8.7.2 发布站点,.compiled文件对于ASP.NET Web应用程序中的可执行文件、程序集和程序集名称以及文件扩展名为.compiled的文件都是在编译时生成的,.compiled文件不包含可执行代码,它只包含ASP.NET查询相应的程序集所需的信息。在部署预编译的应用程序之后,ASP.NET使用Bin文件夹下的程序集来处理请求。预编译输出包含.aspx或.asmx文件,不包含任何代码,采用该方式来限制对特定文件的访问。,8.7

27、.2 发布站点,更新部署的站点在部署预编译的站点之后,还可以对站点中的文件或页面布局进行一定的更改,8.7.2 发布站点,发布站点站点发布工具,8.7.2 发布站点,发布站点配置已发布的站点:发布网站的过程将对网站中的可执行文件进行编译,然后将输出写入指定的文件夹中。由于测试环境与发布应用程序的位置之间存在配置差异,所以发布的应用程序可能与测试环境中的应用程序行为不同。检查原始站点的配置和已发布站点需要更改的设置发布站点以后,最好使用不同用户账户测试已发布站点的所有网页。若要查看已发布站点的配置设置,需打开远程站点并直接编辑远程站点的Web.config文件 比较已发布的站点与原始站点的配置设

28、置。对敏感配置设置(如安全设置和连接字符串)进行加密,8.7.3 Web项目安装包,安装项目安装项目用于创建安装程序,以便分发应用程序。最终的Windows Installer(.msi)文件包含应用程序、任何依赖文件以及有关应用程序的信息。与简单的复制文件相比,使用部署在Web服务器上的安装文件提供的好处是,可以自动处理任何与注册和配置有关的问题。,8.7.3 Web项目安装包,创建Web安装项目打开VS2008,单击“文件”菜单中的“添加新项目”命令,打开示对话框,在“项目类型”列表中选择“其他项目类型”下的“安装和部署”选项,然后在“模板”列表中选择“Web安装项目”选项。,8.7.3

29、Web项目安装包,创建Web安装项目打开Web安装项目的属性设置对话框,单击“系统必备”按钮,打开“系统必备”对话框,选中.NET Framework 3.5复选框。,8.7.3 Web项目安装包,添加输出文件为安装程序添加输出文件,即指定安装程序的内容以及这些内容将要被安装到目标计算机的什么位置,8.7.3 Web项目安装包,测试安装添加输出文件后,接下来编译安装项目,然后测试它是否能够正常运行。在解决方案资源管理器中右击项目名称,选择“生成”命令,启动编译。编译完成后,在项目输出文件夹下直接运行.msi或setup.exe文件启动应用程序安装向导,任务实施,站点部署,任务实施,步骤1打开网站打开项目8任务1 中的CacheDemo网站步骤2:创建Web安装项目在解决方案资源管理器中右击打开“新建项目”对话框,在“项目类型”列表中选择“其他项目类型”下的“安装与部署”选项,在“模版”列表中选择“Web安装项目”选项,设置输出名称和位置,名称为“CacheSetup”,位置为“F:”,单击“确定”按钮。步骤3:添加项目输出在当前窗口中右击选择“Web应用程序文件夹”选项,并选择“添加”命令,选择“项目输出”选项,在弹出的“添加项目输出组”对话框中单击“确定”按钮,任务实施,步骤4生成项目步骤5.查看安装文件,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号