ASP教程之ASP 3.0初级编程(三十五)
asp对于服务器的要求较高,一般的服务器如果访问量一大就垮了,不得不重启。编程|初级7.5.1惯例调试手艺在第2章中,已看到怎样利用Response.Write办法和Request汇合来显现汇合的内容。假如代码要利用来自哀求的值,起首要做的是包管所需的值存在。很简单呈现的成绩是错拼或改动的<FORM>网页中HTML控件的名字,大概创立附加在URL前面的查询字符串时呈现了毛病的客户端。
1.显现各类汇合内容
当程序试图利用用户供应的值运转时,大概没有失掉所希冀的了局,大概甚么了局也没失掉。记着,援用Request工具的汇合中一个其实不存在的值(比方,在窗体上没有一个名为“ThisControl”的控件时,利用Request.Form("ThisControl")不会引发毛病。了局大概只失掉一个空字符串。假如希冀查找存储在用户的Session工具或全局Application工具变量中的数值,一样大概呈现这类情形。
假如创立一个页面用来显现一切Request工具汇合、Session和Application工具的Contents和StaticContens汇合的内容,能够任何网页利用Server.Execute对其举行会见。所必要做的事情是把上面程序行加到ASP网页中,用来显现汇合的全体内容。固然,依据服务器上文件寄存的地位,必需给文件设置响应的路径。
<%Server.Execute"/path_to_file/debug_Request.asp"%>
这是一种很好的办法,包管我们但愿在Request、Session和Application汇合中找到的任何值的确存在,而且包括了符合的值。在本书的示例文件Chapter07子目次中供应了一个响应的文件,取名为debug_Request.asp。它基础上是用于第2章的show_request.asp网页和用于第3章的show_application.asp和show_session.asp网页的一个组合,但删除部分HTML程序代码。它只是复杂地遍历了汇合并把值放到以后页面中。
能够经由过程运转“CustomErrorPage”实例来检察这个页面。这个实例在本章后面看到过,翻开时请选中“Displaydebugginginformation”复选框,大概间接在chapter07目次中的主菜单网页中翻开。
2.显现两头值
在网页中检察运转情形的第二个办法是显现网页运转时变量的值.当也许晓得了毛病来自那边,哪一个变量在起感化时,这类传统手艺仍是不克不及放弃的。但因为IIS5.0网页缓冲体例的改动,使得利用这项手艺对照坚苦。
在ASP和IIS的先前版本中,缺省时封闭页面缓冲,而且几近没有人想到将缓冲翻开(利用Response.Buffer=True翻开),除非想利用Response.Redirect完成网页的再定向(参看第2章)。呼应多个哀求时,因为缓冲减小了网页间切换的次数,从而进步了IIS的效力。
但是,当呈现一个使运转中断的运转期毛病时,IIS主动挪用Response.Clear办法,再挪用Server.Execute来装进定制毛病网页,因而写进网页的任何输入都丧失了。办理办法是临时增添上面的程序行:
<%Response.Buffer=False%>
此程序行放在页面顶部<@LANGUAGE...>指令前面,任何由Response.Write语句天生的调试输入将呈现在定制毛病网页的顶部。记着在完成网页调试以后将它往失落。
强利用程序运转经由过程一个毛病点,然后显现可疑的变量值,这类办法偶然也是有效的。只需在网页入手下手处四周增添OnErrorResumeNext语句,然后就可以会见Err工具(在VBScript中),并显现毛病号、毛病源和形貌。
3.反省组件属性值
假如利用的组件具有在ASP剧本代码中设置的属性,在完成设置以后,而且挪用组件办法之前和以后,能经由过程显现一切属性(或仅是可疑的属性)来跟踪毛病。当一个办法运转时,大概发明属性值不测地被组件改动了,这也许是存心的,大概是由于组件中的缺点。没有亲身反省实践代码,不要做任何假定。
7.5.2MicrosoftScriptDebugger
当开辟更庞大的处置实践义务的使用程序时,常常必要一个加倍壮大的工具来举行调试。MicrosoftScriptDebugger(微软剧本调试器)是一种同意调试运转在客户机和服务器上的剧本的调试工具。它能用于任何启用ActiveX的剧本言语(包含VBScript和JScript)编写的程序,也可以用来调试对Javaapplet、JavaBean和ActiveX组件的挪用。
在研讨这个工具之前,先扼要申明一些成绩。如前所述,ASP使用程序由两种剧本构成,一种是客户端剧本,一种是服务器端剧本。客户端剧本一般由VBScript或JScript剧本语句构成,当其抵达客户端时呈现在HTML页面中并在此实行,多是在载进文档时或是在对一些事务的呼应中。服务器端剧本一般也由VBScript或JScript语句构成。当扫瞄器叨教网页时,服务器端剧本由IIS实行。鄙人面的会商中,将会商服务器端剧本调试的办法。但是所会商的很多手艺也可用于客户端剧本调试。
1.服务器真个调试
为了调试服务器端剧本,在运转IIS的盘算机上运转剧本调试器,但是在利用剧本调试器之前,必需启用调试。为了使功能最优化,基于ASP的使用程序在缺省情形下封闭了调试功效。
注重,不要对临盆性的使用程序(即处于举动形态的并被别人利用的公用网站)翻开调试功效。如许会减慢全部使用程序的运转,而且毛病能使网页呈现不断定的中断运转情形。
调试仅能为假造使用程序和全部Web网站举行设置,为了启用调试,翻开使用程序或站点的Properties对话框,在HomeDirectory选项卡中,点击Configuration按钮,在ApplicationConfiguration对话框的AppDebugging选项卡中,选择EnableASPserver-sidescriptdebugger,如-22所示。上面筹办调试我们的使用程序。
-22启用调试的屏幕
注重ApplicationConfiguration对话框包括一个复选框,可以启用客户端剧本调试。这一点在IIS5.0中没有完成,在文档中仅标志为“reservedforfutureuse”。假如一般的500-100.asp定制毛病页面不成用,ScriptErrormessages部分中包括将文本。
(1)处置服务器剧本
不像客户端剧本,基于ASP使用程序剧本不是事务驱动的。当客户端请求一个来自服务器的网页时,服务器读取网页内容,并处置一切的服务器剧本(即在<%...%>和<SCRIPTRUNAT="SERVER"></SCRIPT>段中的一切内容),也包含在HTML文本中的“行内”剧本段内容,比方:
Thevalveoftheresultis:<%=strResult%>
处置流程显现在-23所示的框图中:
-23服务器剧本运转流程图
当IIS载进网页时将处置ASP页面中的一切剧本,在任何输入送给客户端之前,ASP及剧本引擎可以捕捉语法和运转期毛病(除非你封闭缓冲或挪用Response.Flush办法)。
(2)剧本调试器供应的匡助
启用剧本调试时,假如呈现毛病,在服务器屏幕上能够看到一个形貌ASP代码毛病的对话框,点击OK,然后调进以后ASP网页的一个只读拷贝,翻开的剧本调试器,毛病呈现的行由箭头唆使,如-24所示:
-24剧本调试器
这里,毛病的发生是因为呈现了PageCounter工具办法的名字毛病,应是PageHit而不是DoPageHit。同时,剧本调试器找到了毛病而且停止了页面的运转,工具条上的按钮用于程序的持续运转、单步程序运转大概停止页面的处置。
工具条最右侧的按钮翻开剧本调试器中的Immediate窗口,能够用它和页面举行交互,而且极可能找到堕落的中央。比方,能够查询大概设置变量值或组件属性,能够实行外部函数和子程序、自界说函数和子程序和已创立的工具办法等。在图中,挪用了PageCounter组件的PageHit办法,然后查询Hits属性以失掉正在运转的剧本中该处的值。
为了懂得为何在“大众”网站上不该利用剧本调试器,能够从客户机上翻开一个包括服务器端毛病的页面。在这类情形下,毛病信息对话框呈现在服务器上,剧本调试器也在服务器上翻开。在客户机上,直到运转在服务器上的剧本调试器封闭,才入手下手载进该页面。
(3)启动和利用调试器
启用剧本调试后,假造使用程序的网页中呈现毛病时,剧本调试器主动</p>下一页
缺点:正版成本价格贵(盗版就不说了)、不够安全,大多数服务器用windows系统,没有linux安全 它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。 如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。 跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组 兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的 学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点: 不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
页:
[1]