📄 0012.htm
字号:
<html>
<head>
<title>新时代软件教程:操作系统 主页制作 服务器 设计软件 网络技术 编程语言 文字编辑</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
<!--
body, table {font-size: 9pt; font-family: 宋体}
a {text-decoration:none}
a:hover {color: red;text-decoration:underline}
.1 {background-color: rgb(245,245,245)}
-->
</style>
</head>
<p align="center"><script src="../../1.js"></script></a>
<p align="center"><big><strong>调试 ASP 脚本</strong></big></p>
<p ALIGN="JUSTIFY" class="font3">无论您的计划多么精密、经验多么丰富,脚本错误(bug)可能在最初就使您的
ASP
服务器端的脚本无法正确运行。也就是说调试,即查找和纠正脚本错误,对开发一个成功的和强健的
ASP 程序是非常重要的。</p>
<p ALIGN="JUSTIFY" class="font3">Microsoft 脚本调试工具</p>
<p ALIGN="JUSTIFY" class="font3">Microsoft? Script Debugger
是一个功能强大的调试工具,它能帮助您迅速查找错误并对服务器端的脚本进行交互测试。Script
Debugger 与 Windows Internet Explorer 3.0
版本或更新的版本一起工作。通过它,您可以:</p>
<p ALIGN="JUSTIFY" class="font3">逐行运行服务器端脚本。 </p>
<p ALIGN="JUSTIFY" class="font3">在服务器端脚本执行时,打开命令窗口监视变量、属性或数组元素的值。
</p>
<p ALIGN="JUSTIFY" class="font3">在特定行设置暂停标记,挂起服务器端脚本(使用调试工具或脚本命令)。
</p>
<p ALIGN="JUSTIFY" class="font3">在运行服务器端脚本时跟踪过程。 </p>
<p ALIGN="JUSTIFY" class="font3">注意
您可以使用调试工具查看脚本并找到错误所在,但是不能直接编辑脚本。要想改正错误,必须用编辑器编辑脚本然后保存,再运行脚本。</p>
<p ALIGN="JUSTIFY" class="font3">详细信息,请参阅 Microsoft 脚本调试程序.</p>
<p ALIGN="JUSTIFY" class="font3">(该功能不能用于 Windows 95
或更高的版本。)</p>
<p ALIGN="JUSTIFY" class="font3">启用调试</p>
<p ALIGN="JUSTIFY" class="font3">在开始调试服务器端脚本之前,您必须首先配置
Web 服务器,使其支持 ASP 调试。有关配置命令及信息,请参阅 启用
ASP 调试。</p>
<p ALIGN="JUSTIFY" class="font3">在启用 Web
服务器调试之后,就可以使用下面的任一方法调试脚本:</p>
<p ALIGN="JUSTIFY" class="font3">手工打开 Microsoft 脚本调试器,调试 ASP
服务器端脚本。 </p>
<p ALIGN="JUSTIFY" class="font3">使用 Internet Explorer 请求 .asp
文件。如果该文件包含错误或人为添加的停止执行语句,那么
Microsoft
脚本调试程序将自动启动,显示该脚本,并且指出错误来源。 </p>
<p ALIGN="JUSTIFY" class="font3">脚本错误</p>
<p ALIGN="JUSTIFY" class="font3">调试服务器端脚本时,您可能会碰到各种类型的错误。其中的某些错误使脚本无法正确执行、程序停止执行或返回错误结果。</p>
<p ALIGN="JUSTIFY" class="font3">语法错误</p>
<p ALIGN="JUSTIFY" class="font3">语法错误是经常碰到的错误,它是由不正确的脚本语法导致的。例如,命令拼写错误或传递给函数的参数不正确都将产生错误。语法错误可能导致您的脚本不能运行。</p>
<p ALIGN="JUSTIFY" class="font3">运行时错误</p>
<p ALIGN="JUSTIFY" class="font3">运行时错误是脚本在执行过程中脚本指令试图执行不可能的动作而导致的。例如,下面的脚本中包含一个被零除(一种非法的数学运算)的函数,将产生运行时错误:</p>
<p ALIGN="JUSTIFY" class="font3"><script language = "VBScript" runat =
server></p>
<p ALIGN="JUSTIFY" class="font3">Result = Findanswer(15)</p>
<p ALIGN="JUSTIFY" class="font3">document.write ("The answer is " &Result)</p>
<p ALIGN="JUSTIFY" class="font3">Function Findanswer(x) </p>
<p ALIGN="JUSTIFY" class="font3">'This statement generates a run-time error.</p>
<p ALIGN="JUSTIFY" class="font3">Findanswer = x/0 </p>
<p ALIGN="JUSTIFY" class="font3">End Function</p>
<p ALIGN="JUSTIFY" class="font3"></script></p>
<p ALIGN="JUSTIFY" class="font3">必须纠正导致运行时错误的错误,这样才能使脚本在运行时不被中断。</p>
<p ALIGN="JUSTIFY" class="font3">逻辑错误</p>
<p ALIGN="JUSTIFY" class="font3">逻辑错误通常可能是潜在和难以检测的。如果有因键入错误或程序逻辑流程错误引起的逻辑错误,脚本可能会成功运行,但产生的结果却是错的。例如,一服务器端脚本计划对一个值列表排序,如果本应使用
“<” 符号比较数值,但却使用了?/FONT> >”
符号,那么将返回不正确的排序结果。</p>
<p ALIGN="JUSTIFY" class="font3">错误调试技术</p>
<p ALIGN="JUSTIFY" class="font3">可以使用多种不同的调试技术来查找错误的根源并测试应用程序。</p>
<p ALIGN="JUSTIFY" class="font3">实时 (Just-In-Time, JIT) 调试</p>
<p ALIGN="JUSTIFY" class="font3">当一个运行时错误中断了 ASP
脚本的执行时,Microsoft 脚本调试程序自动启动,显示 .asp
文件,将语句指针指向导致错误的行,并产生错误消息。这种调试方式称为实时
(JIT)
调试,计算机将暂停程序的执行。必须用编辑程序纠正这些错误,保存所做的修正,然后再运行脚本。</p>
<p ALIGN="JUSTIFY" class="font3">断点调试</p>
<p ALIGN="JUSTIFY" class="font3">当一个错误发生并且很难找到错误的根源时,可使用预设断点的调试方法。断点将脚本暂停在特定一行。可以在脚本中有疑问处设置一个或多个不同的断点,然后使用调试器去改正脚本中设置的变量或属性的值。当您纠正这些错误之后,可以清除断点以便您的脚本能不间断地运行。</p>
<p ALIGN="JUSTIFY" class="font3">请用 Microsoft
脚本调试程序打开脚本,设置断点。然后用 Web
浏览器请求此脚本。当执行到脚本中含有断点的行时,计算机启动脚本调试程序,并且语句指针会指在设置了断点的行上。</p>
<p ALIGN="JUSTIFY" class="font3">VBScript Stop 语句调试器</p>
<p ALIGN="JUSTIFY" class="font3">通过在服务器端脚本中有问题的部分前面插入
Stop 语句,您也可以将断点添加到用 VBScript
编写的服务器端脚本中。例如,下面的 ASP 脚本包含一个 Stop
语句,用来在显示结果之前暂停执行:</p>
<p ALIGN="JUSTIFY" class="font3"><% </p>
<p ALIGN="JUSTIFY" class="font3">dayvalue = 3</p>
<p ALIGN="JUSTIFY" class="font3">TheDay = WeekDayName(dayvalue)</p>
<p ALIGN="JUSTIFY" class="font3">Stop 'set breakpoint here.</p>
<p ALIGN="JUSTIFY" class="font3">Response.Write("Today is " + TheDay)</p>
<p ALIGN="JUSTIFY" class="font3">%></p>
<p ALIGN="JUSTIFY" class="font3">当您在请求 Web
浏览器使用的先前的脚本时,调试程序启动并自动显示 .asp
文件,而且语句指针会指示 stop
语句的位置。一定要记住从交付使用的 .asp 文件中删除 Stop 语句。</p>
<p ALIGN="JUSTIFY" class="font3">用 JScript Debugger 语句调试</p>
<p ALIGN="JUSTIFY" class="font3">要将断点加到用 Microsoft? JScript
编写的服务器端脚本中,可在有疑问的行前插入 debugger
语句。例如,下面的脚本包含了 debugger
语句,每次脚本循环到一个新值时,就会中断执行并自动启动
Microsoft 脚本调试程序。</p>
<p ALIGN="JUSTIFY" class="font3"><%@ Language="JScript" %></p>
<p ALIGN="JUSTIFY" class="font3"><%</p>
<p ALIGN="JUSTIFY" class="font3">for (var count = 1; count <= 10; count++) { </p>
<p ALIGN="JUSTIFY" class="font3">var eventest = count%2; </p>
<p ALIGN="JUSTIFY" class="font3">debugger //Sets breakpoint </p>
<p ALIGN="JUSTIFY" class="font3">if (eventest == 0) {</p>
<p ALIGN="JUSTIFY" class="font3">response.write("Even value is " + count +
"<br>")</p>
<p ALIGN="JUSTIFY" class="font3">}</p>
<p ALIGN="JUSTIFY" class="font3">}</p>
<p ALIGN="JUSTIFY" class="font3">%></p>
<p ALIGN="JUSTIFY" class="font3">请记住从交付使用的 .asp 文件中删除 debugger
语句。</p>
<p ALIGN="JUSTIFY" class="font3">注意 不要混淆 debugger 语句和 JScript break
语句。在程序执行期间,break 语句仅退出当前循环,并不激活
Microsoft 脚本调试器,也不暂停程序的执行。</p>
<p ALIGN="JUSTIFY" class="font3">脚本调试技巧</p>
<p ALIGN="JUSTIFY" class="font3">除脚本调试程序外,一套好的调试技巧也能减少花费在分析脚本错误根源上的大量时间。尽管大部分错误是由显而易见的根源导致的,但命令拼写错误或丢失变量、某种类型的逻辑和执行错误也可能因不太明显的根源所致。详细信息,请参阅
Microsoft 脚本调试程序文档的摰魇约记蓴部分。</p>
<p ALIGN="JUSTIFY" class="font3">--------------------------------------------------------------------------------</p>
<p ALIGN="JUSTIFY" class="font3">管理会话</p>
<p ALIGN="JUSTIFY" class="font3">成功开发 Web
应用程序的难题之一是在一次用户访问,即会话期间,当用户在一个应用程序的页与页之间跳转的同时,维护用户信息。HTTP
是一种无状态协议,也就是说,Web
服务器将某页的每次访问都当作相互无关的访问来处理;服务器不保留前一次访问的任何信息,即使访问就发生在当前访问的几秒钟之前。正因为这种不记忆以前访问的特性使得编写联机目录之类的应用程序很困难,此类应用程序可能需要跟踪用户在目录的不同页间跳转的同时曾选择过的目录项。</p>
<p ALIGN="JUSTIFY" class="font3">ASP
提供了一个管理会话信息问题的独特方案。使用 ASP Session
对象和由您的服务器生成的特殊用户 ID,您可以创建一个智能应用程序,该应用程序可以识别每个来访的用户并收集应用程序跟踪用户的首选项或选择内容所要用到的信息。</p>
<p ALIGN="JUSTIFY" class="font3">ASP 通过 HTTP cookie 设置用户 ID。HTTP cookie
是存储在用户浏览器上的小文件。因此,如果您正在为不支持 cookie
的浏览器创建应用程序,或者您的客户将浏览器设置为不接受 cookie,请不要使用
ASP 的会话管理功能。</p>
<p ALIGN="JUSTIFY" class="font3">您也可以编写在应用程序启动或结束时运行的脚本。有关定义应用程序启动事件或应用程序结束事件的信息,请参阅
Global.asa 参考。</p>
<p ALIGN="JUSTIFY" class="font3">启动和结束会话</p>
<p ALIGN="JUSTIFY" class="font3">会话可以通过三种方式启动:</p>
<p ALIGN="JUSTIFY" class="font3">一个新用户请求访问一个 URL,该 URL
标识了某个应用程序中的 .asp 文件,并且该应用程序的 Global.asa
文件包含 Session_OnStart 过程。 </p>
<p ALIGN="JUSTIFY" class="font3">用户在 Session 对象中存储了一个值。 </p>
<p ALIGN="JUSTIFY" class="font3">用户请求了一个应用程序的 .asp
文件,并且该应用程序的 Global.asa 文件使用 <OBJECT>
标签创建带有会话作用域的对象的实例。有关使用 <OBJECT>
标签创建带有会话作用域的对象的实例的详细信息,请参阅
使用组件。 </p>
<p ALIGN="JUSTIFY" class="font3">如果用户在指定时间内没有请求或刷新应用程序中的任何页,会话将自动结束。这段时间的默认值是
20 分钟。可以通过在 Internet
服务管理器中设置撚τ贸绦蜓∠顢属性页中的摶峄俺
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -