调试 ASP 脚本

无论您的计划多么精密、经验多么丰富,脚本错误 (bug) 可能在最初就使您的 ASP 服务器端的脚本无法正确运行。也就是说调试,即查找和纠正脚本错误,对开发一个成功的和强健的 ASP 程序是非常重要的。

Microsoft 脚本调试工具

Microsoft® Script Debugger 是一个功能强大的调试工具,它能帮助您迅速查找错误并对服务器端的脚本进行交互测试。Script Debugger 与 Windows Internet Explorer 3.0 版本或更新的版本一起工作。通过它,您可以:

  • 逐行运行服务器端脚本。
  • 在服务器端脚本执行时,打开命令窗口监视变量、属性或数组元素的值。
  • 在特定行设置暂停标记,挂起服务器端脚本(使用调试工具或脚本命令)。
  • 在运行服务器端脚本时跟踪过程。

注意   您可以使用调试工具查看脚本并找到错误所在,但是不能直接编辑脚本。要想改正错误,必须用编辑器编辑脚本然后保存,再运行脚本。

(该功能不能用于 Windows 95 或更高的版本。)

启用调试

在开始调试服务器端脚本之前,您必须首先配置 Web 服务器,使其支持 ASP 调试。

在启用 Web 服务器调试之后,就可以使用下面的任一方法调试脚本:

  • 手工打开 Microsoft 脚本调试器,调试 ASP 服务器端脚本。
  • 使用 Internet Explorer 请求 .asp 文件。如果该文件包含错误或人为添加的停止执行语句,那么 Microsoft 脚本调试程序将自动启动,显示该脚本,并且指出错误来源。

脚本错误

调试服务器端脚本时,您可能会碰到各种类型的错误。其中的某些错误使脚本无法正确执行、程序停止执行或返回错误结果。

语法错误

语法错误是经常碰到的错误,它是由不正确的脚本语法导致的。例如,命令拼写错误或传递给函数的参数不正确都将产生错误。语法错误可能导致您的脚本不能运行。

运行时错误

运行时错误是脚本在执行过程中脚本指令试图执行不可能的动作而导致的。例如,下面的脚本中包含一个被零除(一种非法的数学运算)的函数,将产生运行时错误:

<script language = "VBScript" runat = server>
Result = Findanswer(15)
document.write ("The answer is " &Result) Function Findanswer(x)
'This statement generates a run-time error.
Findanswer = x/0
End Function
</script>

必须纠正导致运行时错误的错误,这样才能使脚本在运行时不被中断。

逻辑错误

逻辑错误通常可能是潜在和难以检测的。如果有因键入错误或程序逻辑流程错误引起的逻辑错误,脚本可能会成功运行,但产生的结果却是错的。例如,一服务器端脚本计划对一个值列表排序,如果本应使用 “<” 符号比较数值,但却使用了“ >” 符号,那么将返回不正确的排序结果。

错误调试技术

可以使用多种不同的调试技术来查找错误的根源并测试应用程序。

实时 (Just-In-Time, JIT) 调试

当一个运行时错误中断了 ASP 脚本的执行时,Microsoft 脚本调试程序自动启动,显示 .asp 文件,将语句指针指向导致错误的行,并产生错误消息。这种调试方式称为实时 (JIT) 调试,计算机将暂停程序的执行。必须用编辑程序纠正这些错误,保存所做的修正,然后再运行脚本。

断点调试

当一个错误发生并且很难找到错误的根源时,可使用预设断点的调试方法。断点将脚本暂停在特定一行。可以在脚本中有疑问处设置一个或多个不同的断点,然后使用调试器去改正脚本中设置的变量或属性的值。当您纠正这些错误之后,可以清除断点以便您的脚本能不间断地运行。

请用 Microsoft 脚本调试程序打开脚本,设置断点。然后用 Web 浏览器请求此脚本。当执行到脚本中含有断点的行时,计算机启动脚本调试程序,并且语句指针会指在设置了断点的行上。

VBScript Stop 和 Response.end 语句调试器

通过在服务器端脚本中有问题的部分前面插入 Stop 语句,您也可以将断点添加到用 VBScript 编写的服务器端脚本中。例如,下面的 ASP 脚本包含一个 Stop 语句,用来在显示结果之前暂停执行:

<% 
dayvalue = 3
TheDay = WeekDayName(dayvalue)
Stop 'set breakpoint here.
Response.end 'or use this code to set breakpoint
Response.Write("Today is " + TheDay)
%>

当您在请求 Web 浏览器使用的先前的脚本时,调试程序启动并自动显示 .asp 文件,而且语句指针会指示 stop 语句的位置。一定要记住从交付使用的 .asp 文件中删除 Stop 语句。

用 JScript Debugger 语句调试

要将断点加到用 Microsoft® JScript 编写的服务器端脚本中,可在有疑问的行前插入 debugger 语句。例如,下面的脚本包含了 debugger 语句,每次脚本循环到一个新值时,就会中断执行并自动启动 Microsoft 脚本调试程序。

<%@ Language="JScript"  %>
<%
for (var count = 1; count <= 10; count++) {
var eventest = count%2;
debugger //Sets breakpoint
if (eventest == 0) {
response.write("Even value is " + count + "<br>")
}
}
%>

请记住从交付使用的 .asp 文件中删除 debugger 语句。

注意   不要混淆 debugger 语句和 JScript break 语句。在程序执行期间,break 语句仅退出当前循环,并不激活 Microsoft 脚本调试器,也不暂停程序的执行。

脚本调试技巧

除脚本调试程序外,一套好的调试技巧也能减少花费在分析脚本错误根源上的大量时间。尽管大部分错误是由显而易见的根源导致的,但命令拼写错误或丢失变量、某种类型的逻辑和执行错误也可能因不太明显的根源所致。

参考出处:http://www.yesky.com/imagesnew/software/asp/iiwadbug.htm

调试 ASP 程序脚本的更多相关文章

  1. Win10下通过IIS调试ASP程序遇到的问题和解决方案

    最近维护了以前别人的写的一个ASP的系统,记录一下调试过程中的问题和解决方案. 环境篇 万维网发布服务(W3SVC)已经停止 问题: 万维网发布服务(W3SVC)已经停止.除非万维网发布服务(W3SV ...

  2. 用 Visual Studio 2012 调试你的ASP程序

    最近搞到一段很值得参考的ASP项目,无奈技术有限,打开看完代码后感觉自己就像从来没学过ASP一样.唉...大神的世界 不过在网上看到一个有趣的方法,可以用Visual Studio 2005来调试AS ...

  3. 在Chrome+Visual Studio中调试asp.net程序很慢的问题(Firefox也有类似问题)

    在Chrome+Visual Studio中调试asp.net程序很慢的问题(Firefox也有类似问题) 今天开始起在Chrome中调试,发现问题主要出在菜单栏(layout文件)中,google了 ...

  4. 在IIS里面调试asp.net程序

    写在前面,在IIS里面调试asp.net程序,要分程序类型考虑: 一.调试asp.net项目: 1.选择"项目名",右击"属性": 2.选中"Web& ...

  5. C# -- HttpWebRequest 和 HttpWebResponse 的使用 C#编写扫雷游戏 使用IIS调试ASP.NET网站程序 WCF入门教程 ASP.Net Core开发(踩坑)指南 ASP.Net Core Razor+AdminLTE 小试牛刀 webservice创建、部署和调用 .net接收post请求并把数据转为字典格式

    C# -- HttpWebRequest 和 HttpWebResponse 的使用 C# -- HttpWebRequest 和 HttpWebResponse 的使用 结合使用HttpWebReq ...

  6. 如何利用IIS调试ASP.NET网站程序详解

    如何利用IIS调试ASP.NET网站程序详解 更新时间:2019年01月13日 08:44:13   作者:江湖逍遥    我要评论   这篇文章主要给大家介绍了关于如何利用IIS调试ASP.NET网 ...

  7. 使用IIS调试ASP.NET网站程序

    在实际的开发当中,相信很多的开发者在开发调试ASP.NET网站时候都是直接通过Visual Studio工具的编译运行来调试的. 一般情况下,这种调试方式也不会有多少问题,但有时候我们会发现这样的一个 ...

  8. 调试ASP.NET网站IIS环境问题解决方法汇总

    调试网站时出现错误,错误如下: 1. 分析器错误消息: 创建 RewriterConfig 的配置节处理程序时出错: 无法生成临时类(result=1).error CS2001: 未能找到源文件“C ...

  9. 使用VS Code开发调试ASP.NET Core 1.0

    使用VS Code开发调试ASP.NET Core 1.0,微软在今天凌晨发布了.NET Core 1.0,ASP.NET Core 1.0 与 Entity Framewok 1.0. 之前跟大家讲 ...

随机推荐

  1. html 自动跳转,meat(http-equiv)标签详解

    http-equiv顾名思义,相当于http的文件头作用,它可以向浏览器传回一些有用的信息,以帮助正确和精确地显示网页内容,与之对应的属性值为content,content中的内容其实就是各个参数的变 ...

  2. EasyPlayer播放器浏览器ActiveX/OCX插件RTSP播放/抓拍/录像功能调用说明

    EasyPlayerPro与EasyPlayer-RTSP新增ocx多窗口播放功能 这里以EasyPlayerPro为例,使用方法如下: 打开播放器文件夹,进入Bin/C++目录,可以看到reg.ba ...

  3. 问题:今天测试模块一直出现一个问题?module 'subprocess' has no attribute 'Popen'

    原因:我起的名字用了模块本身的名字,这个地方一定要切记

  4. Django之CURD插件2

    目标:达到下图拥有功能的实现 1.绑定编辑按钮 ************思路**************** 1.为编辑按钮添加样式,可以根据样式来进行判断在什么状态. 2.进入编辑模式,将可编辑的字 ...

  5. win7旗舰版 安装IIS中出现的问题

    最好先安装IIS成功了,再安装VS2010或者别的版本 1.hppt 错误500.19,-Internal server erroe,无法访问的请求野蛮,因为该页的相关配置数据无效,HTTP Erro ...

  6. python3 str和bytes转换

    bytes object b = b"example" str object s = "example" #str to bytes bytes(s, enco ...

  7. LeetCode:汇总区间【228】

    LeetCode:汇总区间[228] 题目描述 给定一个无重复元素的有序整数数组,返回数组区间范围的汇总. 示例 1: 输入: [0,1,2,4,5,7] 输出: ["0->2&quo ...

  8. HDU - 1272 小希的迷宫 【并查集】

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1272 思路 只需要判断 这张图 无环 并且只有一个连通块 就可以了 要注意 如果 只输入 0 0 那给 ...

  9. python调用java jython

    环境:openjdk8,python2.7,jython2.7jython下载地址     http://www.jython.org/downloads.html 下载完成后,运行下面命令 java ...

  10. 【leetcode刷题笔记】Length of Last Word

    Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the l ...