第 二 十 六 章 调 试 页 面
既 然 你 为 Web 应 用 编 写 脚 本 你 就 可 以 测 试 它 找 出 错 误 为 了 帮 助 你
Microsoft Visual InterDev 提 供 一 种 全 性 能 的 调 试 器 你 可 以 用 来 追 踪 客 户脚 本 和 服 务 器 脚 本 的 错 误
26 . 1 调 试 客 户 脚 本
你 可 以 用 下 述 诸 方 式 中 任 何 一 种 方 式 调 试 客 户 脚 本
-
在 你 的 Visual Int erDev 解 决 方 案 中 运 行 一 个 页 面 页 面 上 包 含 要 调试 脚 本
-
把 Visual InterDev 调 试 器 连 接 到 一 个 页 面 进 程 上 这 个 进 程 在
Internet E xplorer 中 运 行 着
-
对 脚 本 中 语 法 错 误 或 运 行 期 间 错 误 作 出 响 应 这 便 是 及 时 just- in-time 调 试
-
在 脚 本 中 包 含 一 个 语 句 这 个 语 句 启 动 调 试 器
注 意 : 要 在 Internet Explorer 中 调 试 客 户 脚 本 必 须 使 用 Internet Explorer 4 .0 调 试 必 须 在 Internet E xplorer 中 开 启 这 是 默认 状 况
我 们 建 议 在 调 试 的 时 候 不 要 使 用 Internet E xplorer 的ActiveDesk top 模 式 或 者 把 Internet E xplorer 中 的 选 项 设 置为 在 一 个 新 进 程 中 启 动 浏 览 器 的 每 个 新 实 例
如 果 Web 页 面 包 含 客 户 和 服 务 器 两 种 混 合 脚 本 你 可 以 用 Visual InterDev 调 试 器 对 两 种 脚 本 进 行 调 试 有 关 细 节 参 见 本 章 后 边 调 试 客 户 与 服 务 器 混合 脚 本
对 AS P 页 面 开 启 客 户 脚 本 调 试
在 可 以 对 ASP 页 面 中 客 户 脚 本 进 行 调 试 之 前 你 必 须 开 启 调 试 你 可 以 对你 的 ASP 应 用 手 动 开 启 调 试 如 附 录 A 排 除 故 障 中 的 在 服 务 器 上 开 启 ASP 调 试 所 描 述 的 那 样 另 外 Visual InterDev 可 以 按 照 需 要 自 动 开 启 服 务 器上 的 调 试
注 意 : 如 果 你 企 图 只 用 .htm 文 件 中 的 客 户 脚 本 进 行 工 作 则 不 需 要 开 启 服务 器 调 试 或 执 行 下 述 过 程
自 动 开 启 A S P 页 面 的 客 户 脚 本 调 试
1 . 在 Project Ex plorer 中 右 键 单 击 这 个 项 目 并 选 择 Properties 以 显示 Property P ages 对 话 框
-
选 择 Launch 选 项 卡
-
在
Server script 下 检 查 Automatica lly enabl e ASP server-side debugging on launch 自 动 开 启 ASP 服 务 器 方 的 调 试
注 意 : 要 调 试 A S P 页 面 上 的 脚 本 必 须 运 行 Internet Informatio n
Server(IIS ) 4.0 或 更 高 版 本
在 设 置 这 个 选 项 的 情 况 下 |
你 每 次 启 动 调 试 会 话 |
Visual InterDev 就 检 | |
---|---|---|---|
查 服 务 器 是 否 为 调 试 做 了 配 置 |
这 方 面 的 配 置 包 括 |
||
|
按 照 COM 术 语 在 进 | ||
程 外 |
(out of pr ocess) 运 行 |
||
|
IIS 应 用 的 调 试 选 项 — 个 微 软 事 务 处 理 服 务 器 |
(Microsoft |
Transact ion Serve r |
MTS) 包 以 便 把 调 试 器 连 接 到 Web 应 用 上 包 的 识 别 是 在 你 第 一 次 启 |
动 调 试 会 话 时 设 置 的 设 置 的 时 候 要 求 提 供 名 字 和 口 令
在 你 退 出 调 试 会 话 时 Visual InterDev 把 服 务 器 调 试 设 置 和 进 程 外设 置 恢 复 成 以 前 的 值
使 用 一 种 解 决 方 案 调 试 客 户 脚 本
如 果 你 使 用 Vusual InterDev 的 一 种 解 决 方 案 你 可 以 启 动 调 试 器 来 调 试
文 件
使 用 一 种 解 决 方 案 调 试 脚 本
1 . 在 Visual InterDev 中 打 开 包 含 你 希 望 调 试 页 面 的 项 目 再 把 页 面 装
到 编 辑 器 中
-
使 得 这 个 页 面 就 是 你 项 目 开 始 的 页 面 在 Project Ex plorer 中 右 键 单击 这 个 页 面 并 选 择 Set as Sta rt Page
-
在
脚 本 中 设 置 断 点 以 便 进 行 调 试 有 关 细 节 参 见 第 五 章 演 练 中
的 设 置 断 点 一 节
-
在
Debug 菜 单 中 选 择 Start
-
如 果 对 ASP 页 面 中 的 客 户 脚 本 进 行 调 试 没 有 像 上 述 那 样 予 以 开 启 Visual InterDev 就 显 示 一 条 消 息 你 的 选 择 将 是
-
如 果 你 用 一 个 .htm 文 件 不 是 .asp 文 件 中 的 客 户 脚 本 进 行 工 作并 且 在 调 试 会 话 期 间 你 将 不 导 航 到 ASP 页 面 上 则 选 择 No 继 续 进 行调 试
-
如 果 你 用 一 个 .as p 文 件 进 行 工 作 或 者 在 调 试 会 话 期 间 你 将 导 航到 .asp 文 件 上 则 选 择 Yes 使 Visual Int erDev 自 动 开 启 客 户 方 的ASP 调 试
-
-
如 果 在 ASP 页 面 中 开 启 了 客 户 调 试 并 且 这 是 打 开 项 目 以 来 第 一 次 启 动调 试 会 话 你 就 会 得 到 提 示 提 供 标 识 服 务 器 上 调 试 进 程 的 用 户 信 息 即便 你 当 前 以 用 .htm 文 件 进 行 工 作 在 你 导 航 到 ASP 页 面 的 情 况 下 也 会 得到 提 示
注 意 : 在 Visual Int erDev 对 服 务 器 建 立 了 适 当 配 置 的 情 况 下 你 若 第 一 次对 当 前 项 目 启 动 调 试 会 话 就 会 感 到 迟 后
Visual Int erDev 启 动 Internet E xplorer 并 把 页 面 装 载 到 里 面 当Internet Explorer 达 到 断 点 的 时 候 就 停 下 来 并 在 编 辑 器 窗 口 中显 示 原 代 码 如 果 断 点 在 事 件 处 理 程 序 脚 本 中 你 必 须 触 发 这 个 事 件以 便 达 到 断 点
- 如 果 你 找 到 一 个 错 误 则 解 决 它 然 后 保 存 这 个 文 件 如 果 你 没 有 文 件的 工 作 副 本 就 用 右 键 单 击 Project Ex plorer 中 的 文 件 名 字 在 进 行 修
改 以 前 选 择 Get Latest Version 8. 在 Debug 菜 单 中 选 择 Restart
注 意 : 使 用 调 试 器 命 令 的 有 关 细 节 参 见 Visual Int erDev 在 线 文 档
在 运 行 文 档 中 调 试 客 户 脚 本
如 果 一 个 客 户 脚 本 已 经 在 Internet Explorer 中 运 行 并 且 你 发 现 了 一 个问 题 你 可 以 把 脚 本 停 下 来 在 这 个 地 方 调 试 它 你 可 以 在 Visual InterDev 中 或 在 Internet E xplorer 中 调 试 一 个 运 行 文 档
注 意 : 如 果 是 以 一 个 A S P 页 面 进 行 工 作 必 须 在 服 务 器 上 开 启 调 试 有 关 细节 参 见 附 录 A 排 除 故 障 中 的 在 服 务 器 上 开 启 A S P 调 试
只 当 你 开 启 连 接 的 时 候 你 才 可 以 连 接 到 一 个 运 行 文 档 上
开 启 及 时 调 试
1 . 在 Tools 菜 单 中 选 择 Options
-
在 Options 对 话 框 中 选 择 Debugger
-
在
Script 下 检 查 Attach to programs running on this machin e 连接 到 这 个 机 器 上 运 行 的 程 序 上
你 可 以 直 接 在 Visual Int erDev 中 连 接 到 一 个 文 档 上
调 试 Visual Int erDev 中 运 行 的 文 档
- 在 Visual InterDev 中 选 择 Debug 菜 单 上 的 Processes 在 Processes 对 话 框 中 选 择 Microsoft Internet Explorer 然 后 选 择 Attach 然 后 选 择 你 希 望 调 试 的 脚 本
或 者
如 果 你 已 经 连 接 到 运 行 文 档 上 在 Visual Int erDev 中 选 择 Debug
菜 单 中 的 Break 调 试 器 便 停 在 脚 本 下 一 个 要 执 行 的 语 句 上
如 果 Visual Int erDev 尚 未 运 行 你 可 以 从 Internet E xplorer 启 动 调 试
器
从 Internet E xplorer 调 试 运 行 文 档
1 . 在 Internet E xplorer 中 选 择 View 菜 单 中 的 Script Deb ugger 然 后选 择 Break at N ext Statement 在 浏 览 器 中 触 发 一 个 事 件 这 个 事 件调 用 你 希 望 调 试 的 脚 本
或 者
在 Internet E xplorer 中 选 择 View 菜 单 中 的 Script Deb ugger 然 后
选 择 Open
-
启 动 Visual InterDev 中 的 一 个 新 实 例 出 现 打 开 一 个 项 目 的 提 示 如果 Visual Int erDev 已 经 在 运 行 就 启 动 第 二 个 实 例 打 开 其 中 包 含 要 调试 文 件 的 项 目
-
如 果 这 个 项 目 已 经 在 Visual InterDev 另 一 个 实 例 中 打 开 你 就 不 能 再一 次 打 开 项 目 因 而 Visual Int erDev 创 建 一 个 新 解 决 方 案 作 为 替 代 项目
-
要
调 试 的 页 面 装 到 编 辑 器 中 如 果 需 要 的 话 就 获 取 这 个 页 面 的 工 作 副本 如 果 项 目 已 经 打 开 页 面 就 作 为 只 读 文 件 装 载 到 这 个 新 项 目 中
如 果 你 改 变 了 这 个 文 件 就 保 存 它 并 再 把 它 放 到 服 务 器 上 在 再 一 次 运
行 该 脚 本 之 前 在 Internet E xplorer 中 刷 新 该 文 件
注 意 有 关 使 用 调 试 器 命 令 详 见 Visual Int erDev 在 线 文 档
在 响 应 错 误 或 调 试 器 语 句 的 过 程 中 调 试 客 户 脚 本
如 果 Internet Explorer 遇 到 一 个 语 法 错 误 或 运 行 期 间 错 误 你 可 以 用 及时 just-in-ti me 调 试 找 到 并 解 决 它 你 可 以 在 脚 本 中 放 一 个 语 句 例 如 Visual Basic 的 Stop 语 句 Scripting Edition (VBScript) 或 JScript 的 调 试 器 语句 以 便 在 一 个 脚 本 中 启 动 调 试 器
你 可 以 启 动 调 试 器 对 错 误 或 调 试 器 语 句 作 出 响 应 但 是 只 有 在 开 启 及 时调 试 的 情 况 下 才 行
开 启 及 时 调 试
1 . 在 Tools 菜 单 中 选 择 Options
-
在 Options 对 话 框 中 选 择 Debugger
-
在 Script 下 检 查 Just-In-Ti me debugging
在 响 应 错 误 或 调 试 器 语 句 中 调 试
1 . 如 果 Internet Explorer 遇 到 一 个 语 法 错 误 或 启 动 调 试 器 的 语 句 就 显示 一 个 错 误 消 息 提 示 你 进 行 调 试 选 择 Yes
-
启 动 Visual Int erDev 中 的 一 个 新 实 例 如 果 Visual Int erDev 已 经 在运 行 就 启 动 第 二 个 实 例
-
打 开 包 含 要 调 试 文 件 的 项 目 如 果 这 个 项 目 已 经 在 Visual InterDev 的另 一 个 实 例 中 打 开 你 就 不 能 再 一 次 打 开 它 因 而 Visual Int erDev 创 建
— 个 替 代 的 新 项 目
把 要 调 试 的 页 面 装 载 到 编 辑 器 中 如 果 需 要 的 话 就 获 取 这 个 页 面 的 工作 副 本 如 果 该 项 目 已 经 打 开 页 面 就 作 为 只 读 文 件 装 载 到 这 个 新 项 目 中注 意 : 如 果 你 在 调 试 由 .asp 文 件 生 成 的 客 户 脚 本 在 错 误 消 息 中 报 告 的
行 号 便 是 指 当 前 显 示 在 浏 览 器 中 HTML 文 档 中 的 行 这 些 行 通 常 不 对应 于 原 来 .asp 文 件 中 的 行 号 这 是 因 为 服 务 器 脚 本 不 出 现 在 . a s p 文 件 的 HTML 输 出 中 详 细 内 容 参 见 本 章 后 边 调 试 客 户 与 服 务 器混 合 脚 本
如 果 你 改 变 了 这 个 文 件 就 保 存 它 并 再 把 它 放 到 服 务 器 上 在 再 一 次 运行 该 脚 本 之 前 在 Internet E xplorer 中 刷 新 该 文 件
注 意 : 有 关 使 用 调 试 器 命 令 参 见 Visual Int erDev 在 线 文 档
26 .2 调 试 服 务 器 脚 本
从 Microsoft Visual Int erDev 你 可 以 调 试 在 Internet 信 息 服 务 器 (IIS 上 运 行 的 服 务 器 脚 本 如 果 IIS 在 你 的 计 算 机 上 运 行 你 可 以 以 调 试 客 户 脚 本类 似 的 方 式 调 试 服 务 器 脚 本 如 果 服 务 器 是 在 另 外 一 台 计 算 机 上 则 可 以 从 你的 计 算 机 上 使 用 远 程 调 试 (remote debugging) 查 找 服 务 器 脚 本 中 的 错 误有 关 细 节 参 见 第 二 十 九 章 综 合 任 务 中 的 远 程 调 试 一 节
你 可 以 使 用 下 述 方 式 中 的 任 何 一 种 调 试 服 务 器 脚 本
-
从 你 的 Visual Int erDev 解 决 方 案 中 运 行 一 个 包 含 要 调 试 脚 本 的 页 面
-
把 Visual InterDev 调 试 器 连 接 到 一 个 页 面 进 程 上 这 个 进 程 在
Internet E xplorer 中 运 行 着
- 对 脚 本 中 语 法 错 误 或 运 行 期 间 错 误 作 出 响 应 这 便 是 所 谓 及 时
just-in-ti me 调 试
- 在 脚 本 中 包 含 一 个 语 句 这 个 语 句 启 动 调 试 器
注 意 : 在 A S P 页 面 中 调 试 脚 本 你 必 须 运 行 Internet 信 息 服 务 器 (IIS) 的 4 . 0 版 本 或 更 高 版 本
如 果 Web 页 面 包 含 客 户 和 服 务 器 两 种 混 合 脚 本 你 可 以 用 Visual InterDev 调 试 器 对 两 种 脚 本 进 行 调 试 有 关 细 节 参 见 本 章 后 边 调 试 客 户 与 服 务 器 混合 脚 本
对 AS P 页 面 开 启 服 务 器 脚 本 调 试
在 可 以 对 ASP 页 面 中 客 户 脚 本 进 行 调 试 之 前 你 必 须 开 启 调 试 你 可 以 对你 的 ASP 应 用 手 动 开 启 调 试 如 附 录 A 排 除 故 障 中 的 在 服 务 器 上 开 启 ASP 调 试 所 描 述 的 那 样 另 外 Visual InterDev 可 以 按 照 需 要 自 动 开 启 服 务 器上 的 调 试
自 动 开 启 A S P 页 面 的 脚 本 调 试
1 . 在 Project Ex plorer 中 右 键 单 击 这 个 项 目 并 选 择 Properties 以便 显 示 Property P ages 对 话 框
-
选 择 Launch 选 项 卡
-
在
Server script 下 确 保 选 中 Automatica lly enable ASP server-side debugging on launch 自 动 开 启 ASP 服 务 器 方 的 调 试
在 设 置 这 个 选 项 的 情 况 下 你 每 次 启 动 调 试 会 话 Visual InterDev 就 检查 服 务 器 是 否 为 调 试 做 了 配 置 这 方 面 的 配 置 包 括
-
把 IIS 设 置 成 在 其 自 己 的 存 储 空 间 中 运 行 按 照 COM 术 语 在 进 程外 (out of pr ocess) 运 行
-
开 启 IIS 应 用 的 调 试 选 项
-
组
建 一 个 Microsoft Trans action Server (MTS ) 包 以 便 把 调 试 器 连 接到 Web 应 用 上 包 的 识 别 是 在 你 第 一 次 启 动 调 试 会 话 时 设 置 的 设 置的 条 件 是 要 求 你 提 供 名 字 和 口 令
注 意 : 你 可 以 手 动 在 服 务 器 上 执 行 前 两 个 步 骤 有 关 细 节 参 见 附 录 A 排 除 故 障 中 的 在 服 务 器 上 开 启 A S P 调 试
在 你 退 出 调 试 会 话 时 Visual InterDev 把 服 务 器 调 试 设 置 和 进 程 外设 置 恢 复 成 以 前 的 值
在 解 决 方 案 中 调 试 服 务 器 脚 本
如 果 你 以 Visual InterDev 解 决 方 案 进 行 工 作 则 可 以 启 动 调 试 器 调 试 服务 器 脚 本
注 意 : 在 调 试 服 务 器 脚 本 之 前 保 证 已 经 按 上 边 所 述 已 经 开 启 调 试 或 处于 附 录 A 排 除 故 障 中 的 在 服 务 器 上 开 启 A S P 调 试 状 况 之 下
在 服 务 器 中 调 试 服 务 器 脚 本
1 . 在 Visual Int erDev 中 打 开 包 含 你 希 望 调 试 服 务 器 脚 本 的 项 目
- 使 得 这 个 页 面 就 是 你 项 目 开 始 的 页 面 在 Project Ex plorer 中 右 键 单 击
这 个 页 面 并 选 择 Set as Sta rt Page
-
在 服 务 器 脚 本 中 设 置 断 点 以 便 进 行 调 试
-
在 Debug 菜 单 中 选 择 Start 以 便 启 动 项 目
Visual Int erDev 试 图 把 调 试 器 连 接 到 在 服 务 器 上 运 行 的 文 档 上
-
如
果 这 是 打 开 当 前 项 目 以 来 你 第 一 次 启 动 调 试 器 便 提 示 你 提 供 用 户 信息 以 便 标 识 在 服 务 器 上 的 调 试 过 程 键 入 你 的 域 名 名 字 窗 体 是 域名 \ 名 字 和 口 令
-
浏
览 器 打 开 你 可 以 进 行 调 试 当 服 务 器 执 行 到 有 断 点 的 行 时 调 试 器就 以 加 亮 的 行 显 示 编 辑 器 中 的 页 面
-
解
决 任 何 错 误 保 存 文 件 然 后 在 Debug 菜 单 中 选 择 Restart 如 果 你没 有 文 件 的 工 作 副 本 就 用 右 键 单 击 Project Ex plorer 中 这 个 文 件 的 名字 选 择 Get Latest Version 然 后 进 行 修 改
在 运 行 文 档 中 调 试 服 务 器 脚 本
如 果 调 试 已 经 在 服 务 器 上 对 你 的 项 目 开 启 并 且 在 应 用 运 行 的 时 候 你 检 测到 一 个 错 误 你 就 可 以 把 调 试 器 连 接 到 这 个 应 用 上 有 关 在 服 务 器 上 开 启 调 试的 细 节 参 见 附 录 A 排 除 故 障 中 这 在 服 务 器 上 开 启 ASP 调 试
只 有 连 接 开 启 的 情 况 下 你 才 可 以 连 接 到 运 行 的 文 档 上
开 启 及 时 调 试
1 . 在 Tools 菜 单 中 选 择 Options
-
在 Options 对 话 框 中 选 择 Debugger
-
在
Script 下 选 中 Attach to programs running on this machin e 连接 到 这 个 机 器 上 运 行 的 程 序 上
调 试 运 行 的 脚 本
1 . 在 Visual Int erDev 中 选 择 Debug 菜 单 中 的 Processes 在 Processes
对 话 框 中 选 择 Active Pag es 再 选 Atach
-
在 Running Do cuments 窗 口 中 选 择 你 希 望 调 试 的 脚 本
-
设
置 断 点 然 后 选 择 Debug 菜 单 中 的 Restart 或 刷 新 浏 览 器 器 中 的 文
档
注 意 : 有 关 使 用 调 试 器 命 令 的 细 节 参 见 Visual Int erDev 在 线 文 档
在 响 应 错 误 或 调 试 器 语 句 过 程 中 调 试 服 务 器 脚 本
如 果 对 服 务 器 上 的 IIS 应 用 开 启 了 调 试 而 且 这 个 服 务 器 遇 到 服 务 器 脚 本的 一 个 语 法 错 误 或 运 行 期 间 错 误 你 可 以 使 用 及 时 调 试 找 到 并 解 决 这 个 错 误
你 还 可 以 在 你 的 脚 本 中 放 入 一 个 语 句 例 如 VBScript 的 Stop 语 句 或 JScript
的 调 试 器 语 句 以 便 在 脚 本 中 启 动 调 试 器 有 关 在 服 务 器 上 开 启 调 试 的 细 节参 见 附 录 A 排 除 故 障 中 的 在 服 务 器 上 开 启 ASP 调 试
注 意 : 如 果 调 试 器 安 装 在 服 务 器 计 算 机 上 服 务 器 不 把 错 误 信 息 传 递 给 客 户机 相 反 在 服 务 器 计 算 机 的 监 视 器 上 显 示 一 条 错 误 消 息 更 多 内 容参 见 附 录 A 排 除 故 障 中 的 及 时 调 试 服 务 器 页 面 一 节
只 当 在 开 启 及 时 调 试 的 条 件 下 你 才 可 以 启 动 调 试 器 响 应 错 误 或 调 试 器 语
句
开 启 及 时 调 试
在 响 应 错 误 或 调 试 器 语 句 过 程 中 调 试 服 务 器 脚 本
1 . 当 出 现 一 个 错 误 消 息 提 示 你 启 动 调 试 器 的 时 候 选 择 Yes
- 启 动 Visual InterDev 的 新 实 例 提 示 你 打 开 项 目 如 果 Visual InterDev
已 经 在 运 行 着 就 启 动 第 二 个 实 例
- 打
开 包 含 要 调 试 文 件 的 项 目 如 果 项 目 已 经 在 Visual InterDev 的 另 一个 实 例 中 打 开 你 就 不 能 再 一 次 打 开 它 Visual Int erDev 就 创 建 一 个 新解 决 方 案 以 替 代 项 目
把 要 调 试 的 页 面 装 入 到 编 辑 器 中 如 果 需 要 获 取 这 个 页 面 的 工 作 副 本如 果 项 目 已 经 打 开 页 面 就 作 为 只 读 文 件 装 入 到 新 项 目 中
注 意 : 有 关 使 用 调 试 器 命 令 的 细 节 参 见 Visual Int erDev 在 线 文 档
如 果 服 务 器 已 经 对 应 用 开 启 错 误 就 作 为 页 面 文 本 显 示 在 浏 览 器 上 在 这种 情 况 下 按 照 上 边 所 述 打 开 包 含 Visual InterDev 中 页 面 的 项 目 并 在 这里 启 动 调 试 器
26 .3 调 试 客 户 和 服 务 器 混 合 脚 本
许 多 ASP 页 面 包 含 客 户 和 服 务 器 两 种 脚 本 你 可 以 在 客 户 和 服 务 器 两 种 脚本 中 设 置 断 点 每 种 脚 本 在 执 行 中 都 可 以 在 断 点 处 调 用 调 试 器
如 果 服 务 器 没 在 你 的 计 算 机 上 运 行 你 可 使 用 远 程 调 试 (remote debugging) 调 试 页 面 中 的 服 务 器 脚 本 有 关 如 何 组 建 远 程 调 试 的 细 节 参 见 第二 十 九 章 综 合 任 务 中 的 远 程 调 试
注 意 : 建 议 你 在 调 试 的 时 候 不 要 使 用 Microsoft Internet E xplorer 4.0 的Active Des ktop 模 式
为 AS P 页 面 开 启 调 试
在 ASP 页 面 中 调 试 脚 本 以 前 你 必 须 开 启 调 试 你 可 以 手 动 为 ASP 应 用 开启 调 试 如 附 录 A 排 除 故 障 中 的 在 服 务 器 上 开 启 ASP 调 试 描 述 的 那 样此 外 Visual Int erDev 还 可 以 按 照 需 要 自 动 开 启 调 试
注 意 : 要 在 A S P 页 面 上 调 试 脚 本 必 须 运 行 微 软 公 司 的 Internet 信 息 服 务器 (IIS) 4.0 版 本 或 更 高 版 本
在 A S P 页 面 上 开 启 脚 本 调 试
1 . 在 Project Explorer 中 右 键 单 击 项 目 并 选 择 Properties 以 便 显 示
Property P ages 对 话 框
-
选 择 Launch 选 项 卡
-
在 Server script 下 确 保 选 中 Automatica lly en able ASP server-side
debugging 自 动 开 启 服 务 器 方 的 调 试
当 这 些 选 项 都 设 置 完 毕 时 你 每 启 动 一 次 调 试 会 话 Visual InterDev 就检 查 一 次 服 务 器 是 否 已 做 调 试 配 置 其 中 包 括
- 把 IIS 应 用 设 置 成 在 其 存 储 空 间 中 运 行 按 照 COM 术 语 在 进 程 外
(out of pr ocess) 运 行
-
开 启 IIS 应 用 的 调 试 选 项
-
组
建 一 个 Microsoft Trans action Server (MTS ) 包 从 而 允 许 你 把 调试 器 连 接 到 Web 应 用 上 包 的 识 别 是 在 你 第 一 次 启 动 调 试 会 话 时 设 置的 设 置 的 时 候 要 求 你 提 供 你 名 字 和 口 令
在 你 退 出 调 试 会 话 时 Visual InterDev 把 服 务 器 调 试 设 置 和 进 程 外设 置 都 恢 复 成 以 前 的 值
调 试 包 含 客 户 和 服 务 器 脚 本 的 页 面
若 一 个 页 面 包 含 服 务 器 和 客 户 两 种 脚 本 而 你 只 在 这 个 页 面 上 的 客 户 脚 本中 设 置 一 个 断 点 调 试 器 便 追 踪 这 个 断 点 事 件 即 使 在 服 务 器 脚 本 执 行 之 后 这个 断 点 在 文 件 中 的 位 置 可 能 变 化 很 大 如 果 服 务 器 脚 本 把 客 户 脚 本 在 这 个 页 面上 写 入 多 次 调 试 器 就 分 别 追 踪 每 个 断 点
你 可 以 在 服 务 器 脚 本 客 户 脚 本 或 两 种 脚 本 上 设 置 断 点 如 果 你 在 两 种 脚本 上 设 置 断 点 调 试 器 就 先 停 在 服 务 器 脚 本 断 点 上 当 你 继 续 运 行 时 页 面 发送 到 浏 览 器 上 调 试 器 便 接 着 停 在 客 户 脚 本 断 点 上
调 试 包 含 客 户 和 服 务 器 两 种 脚 本 的 页 面
1 . 在 Visual InterDev 中 在 客 户 脚 本 和 服 务 器 脚 本 上 你 希 望 调 试 的 行 中设 置 断 点
-
要 使 得 一 个 页 面 就 是 你 项 目 开 始 的 页 面 在 Project Ex plorer 中 用 右 键单 击 该 页 面 选 择 Set as Sta rt Page
-
在
Debug 菜 单 中 选 择 Start
Visual Int erDev 企 图 把 调 试 器 连 接 到 服 务 器 上 运 行 的 文 档 上
-
如 果 这 是 打 开 当 前 项 目 以 来 你 第 一 次 启 动 调 试 器 便 提 示 你 提 供 用 户 信息 以 便 标 识 在 服 务 器 上 的 调 试 过 程 键 入 你 的 域 名 名 字 窗 体 是域 名 \ 名 字 和 口 令
-
进
行 调 试 当 服 务 器 执 行 到 有 断 点 的 行 时 调 试 器 就 以 加 亮 的 行 显 示 编辑 器 中 的 页 面
当 你 离 开 服 务 器 脚 本 时 页 面 将 继 续 执 行 直 到 进 入 另 一 个 服 务 器 脚 本 为止 当 调 试 器 完 成 对 服 务 器 脚 本 的 调 试 时 服 务 器 就 把 页 面 发 送 给 浏 览 器 显示 出 来
- 如
果 需 要 就 触 发 一 个 事 件 例 如 敲 击 按 钮 于 是 运 行 你 希 望 调 试 的 客户 脚 本
调 试 器 停 在 断 点 处 显 示 正 被 浏 览 器 处 理 的 页 面 型 式
注 意 : 关 于 使 用 调 试 器 命 令 的 细 节 参 见 Visual Int erDev 在 线 文 档
当 你 调 试 包 含 服 务 器 和 客 户 两 种 脚 本 的 页 面 时 要 记 住 服 务 器 脚 本 有 可能 把 HTML 文 本 客 户 脚 本 插 入 到 这 个 页 面 中 例 如 用 几 行 服 务 器 脚 本 就 可 以 动态 创 建 数 据 库 信 息 之 外 的 大 型 表 格 或 者 把 客 户 脚 本 写 到 这 个 页 面 上 或 在 这 个
页 面 上 重 新 进 行 安 排
在 处 理 这 个 页 面 之 后 服 务 器 便 去 掉 这 个 服 务 器 脚 本 因 此 正 被 浏 览 器 处理 的 页 面 同 它 在 Visual Int erDev 编 辑 器 中 包 含 有 服 务 器 脚 本 和 客 户 脚 本 时 的样 子 看 上 去 会 完 全 不 同 有 关 如 何 处 理 服 务 器 脚 本 的 细 节 参 见 第 二 十 三 章 脚本 编 程 概 念 中 的 了 解 脚 本 处 理 一 节
调 试 嵌 入 的 服 务 器 脚 本
有 一 种 特 殊 情 况 就 是 你 希 望 调 试 的 服 务 器 脚 本 出 现 在 客 户 脚 本 块 之 内在 下 述 情 况 中 服 务 器 脚 本 先 从 一 种 窗 体 中 提 取 一 个 值 再 把 它 存 储 到 一 个 变量 中 接 着 在 客 户 脚 本 块 中 一 个 嵌 入 的 服 务 器 脚 本 块 动 态 地 把 这 个 变 量 值插 入 到 一 个 客 户 语 句 中
注 意 : 当 你 在 客 户 脚 本 中 编 写 服 务 器 脚 本 时 编 辑 器 不 遵 从 服 务 器 脚 本 的 彩色 编 码 约 定
如 果 你 在 嵌 入 的 服 务 器 脚 本 行 上 设 置 断 点 它 不 清 楚 你 是 希 望 把 调 试 器 停在 服 务 器 脚 本 上 <%=loginNa me%> 还 是 希 望 过 一 会 儿 停 在 客 户 脚 本 中 txt= 因 此 Visual Int erDev 为 你 提 供 两 种 选 择
-
只 是 客 户 断 点 这 个 断 点 被 解 释 成 客 户 断 点 因 而 在 服 务 器 处 理 嵌 入的 服 务 器 脚 本 时 调 试 器 不 停 下 来
-
**服
务 器 和 客 户 断 点** 调 试 器 停 两 次 第 一 次 是 处 理 服 务 器 脚 本 的 时 候再 一 次 是 到 达 客 户 脚 本 中 同 一 行 的 时 候
默 认 选 择 仅 仅 是 客 户 断 点 要 停 两 次 你 就 要 开 启 调 试 器 选 项
为 嵌 入 的 服 务 器 脚 本 开 启 断 点
1 . 在 Tools 菜 单 中 选 择 Options 然 后 打 开 Debugger 节 点
2. 选 择 Insert b reakpoints in Active Server Pages for breakpoi nts in client scr ipt
在 你 运 行 调 试 器 并 在 嵌 入 的 服 务 器 脚 本 上 中 断 的 时 候 不 直 接 停 在 包 含 服务 器 脚 本 的 行 上 而 是 停 在 紧 接 着 服 务 器 脚 本 行 后 边 的 客 户 脚 本 行 或 HTML 行上 在 有 些 情 况 中 这 会 使 断 点 在 嵌 入 的 服 务 器 脚 本 之 前 许 多 行 上 出 现
例 如 如 果 你 在 嵌 入 的 服 务 器 脚 本 上 设 置 一 个 断 点 <%=loginNa me%> , 如下 例 所 示 调 试 器 就 停 在 <HTML> 标 记 处
之 所 以 出 现 这 种 情 况 是 因 为 在 服 务 器 处 理 页 面 的 时 候 除 了 服 务 器 脚 本其 它 任 何 东 西 一 律 忽 略 服 务 器 不 看 嵌 入 服 务 器 脚 本 之 前 的 HTML 行 和 客 户脚 本 行 因 此 包 含 嵌 入 服 务 器 脚 本 的 开 始 行 是 服 务 器 脚 本 紧 接 着 的 一 行
要 移 动 嵌 入 服 务 器 脚 本 就 要 使 用 调 试 器 的 Step Into 命 令
26 .4 调 试 Gl oba l.a sa 文 件
调 试 Global.asa 文 件 同 调 试 .asp 文 件 有 以 下 诸 方 面 不 同
- Global.asa 文 件 不 能 是 开 始 页 面 要 调 试 Global.asa 文 件 你 必 须 请求 一 个 ASP 页 面 在 请 求 ASP 页 面 的 时 候 服 务 器 处 理 Global.asa 页
面
-
Global.asa 文 件 中 的 过 程 是 事 件 驱 动 的 这 与 .asp 文 件 中 的 内 联 脚 本不 同
-
Global.asa
文 件 中 的 过 程 通 常 对 每 个 应 用 或 对 每 次 会 话 只 运 行 一 次
-
Applicatio n_OnStart 过 程 在 基 于 ASP 应 用 中 任 何 页 面 被 第 一 访 问 的时 候 执 行
-
Applicatio n_OnEnd 过 程 只 在 应 用 停 止 的 时 候 执 行
-
Session_On Start 过 程 只 对 每 个 用 户 会 话 执 行 一 次
-
Session_On End 过 程 只 在 用 户 会 话 出 现 超 时 时 执 行 或 在 脚 本 明 确 调用 会 话 对 象 的 Abandon 放 弃 方 法 时 执 行
-
在 Gl ob al .a sa 文 件 开 启 调 试
在 Global,asa 文 件 中 调 试 脚 本 之 前 你 必 须 为 ASP 页 面 开 启 调 试 你 可 以手 动 为 ASP 应 用 开 启 调 试 如 附 录 A 排 除 故 障 中 的 在 服 务 器 上 开 启 ASP 调 试 所 述 的 那 样 此 外 Visual Int erDev 可 以 按 照 需 要 自 动 开 启 调 试
在 A S P 页 面 中 自 动 开 启 脚 本 调 试
1 . 在 Project Explorer 中 右 键 单 击 项 目 并 选 择 Properties 以 便 显 示
Property P ages 对 话 框
-
选 择 Launch 选 项 卡
-
在
Server script 下 确 保 选 中 Automatica lly en able ASP server-side debugging on launch 自 动 开 启 ASP 服 务 器 方 的 调 试
在 设 置 这 个 选 项 的 情 况 下 你 每 次 启 动 调 试 会 话 Visual InterDev 就 检查 服 务 器 是 否 为 调 试 作 了 配 置 这 方 面 的 配 置 包 括
-
把
Internet 信 息 服 务 器 IIS 应 用 设 置 成 在 其 存 储 空 间 中 运 行 按照 COM 术 语 在 进 程 外 (out of pr ocess) 运 行
-
开 启
IIS 应 用 的 调 试 选 项
-
组
建 一 个 Microsoft Trans action Server(MTS) 包 从 而 允 许 你 把 调 试器 连 接 到 Web 应 用 上 包 的 识 别 是 在 你 第 一 次 启 动 调 试 会 话 时 设 置 的 设 置 的 时 候 要 求 你 提 供 名 字 和 口 令
注 意 : 你 可 以 手 动 在 服 务 器 上 执 行 前 两 个 步 骤 有 关 细 节 参 见 附 录 A 排除 故 障 中 的 在 服 务 器 上 开 启 A S P 调 试
在 你 退 出 调 试 会 话 时 Visual InterDev 把 服 务 器 调 试 设 置 和 进 程 外设 置 都 恢 复 成 以 前 的 值
在 Gl ob al .a sa 文 件 中 调 试 脚 本
要 调 试 Global.asa 文 件 必 须 组 建 对 该 文 件 中 脚 本 的 一 次 调 试 器 调 用 然后 启 动 ASP 应 用
从 Global.asa 文 件 中 调 用 调 试 器
1 . 在 编 辑 器 中 打 开 Global.asa 文 件 然 后 在 脚 本 中 设 置 一 个 断 点或 者
选 取 一 个 明 确 启 动 调 试 器 的 语 句 例 如 VBScript 中 的 Stop 或 JavaScript
中 的 调 试 器 在 你 希 望 步 入 的 任 何 语 句 之 前 把 这 个 语 句 放 到 过 程 的 开
头
2. 从 浏 览 器 中 的 当 前 项 目 中 请 求 一 个 ASP 页 面 这 会 使 IIS 运 行 Global.asa
文 件
在 对 错 误 响 应 中 调 试 Gl ob al .a sa 文 件
如 果 Global.asa 文 件 中 有 一 个 错 误 语 法 错 误 或 运 行 事 件 错 误 服 务 器便 停 止 含 有 这 个 错 误 的 过 程 如 果 对 这 个 ASP 应 用 开 启 调 试 服 务 器 便 提 示 你启 动 调 试 器 并 显 示 一 条 错 误 消 息 如 果 没 对 这 个 ASP 应 用 开 启 调 试 错 误 消 息便 送 到 客 户 浏 览 器 上 不 管 在 哪 种 情 况 下 含 有 错 误 的 过 程 都 要 停 下 来
注 意 : 如 果 调 试 器 安 装 到 服 务 器 计 算 机 上 服 务 器 便 不 把 错 误 信 息 传 递 给 客户 而 是 把 错 误 消 息 显 示 在 服 务 器 计 算 机 的 监 视 器 上 详 细 内 容 参见 附 录 A 排 除 故 障 中 的 及 时 调 试 服 务 器 页 面
只 在 开 启 及 时 调 试 情 况 下 , 你 可 以 启 动 调 试 器 对 错 误 或 调 试 器 语 句 作 出
响 应
开 启 及 时 调 试
1 . 从 Tools 菜 单 中 选 择 Options
-
在 Options 对 话 框 中 选 择 Debugger
-
在 Script 下 选 中 Just-In-Ti me debugging 及 时 调 试
在 对 错 误 响 应 过 程 中 调 试 Global.asa 脚 本
1 . 在 出 现 错 误 消 息 提 示 你 启 动 调 试 器 动 时 候 选 择 Yes
- 启 动 Visual InterDev 的 一 个 新 实 例 并 提 示 你 打 开 一 个 项 目 如 果 Visual
InterDev 已 经 在 运 行 就 启 动 第 二 个 实 例
- 打
开 包 含 要 调 试 Global.asa 文 件 的 项 目 如 果 这 个 项 目 已 经 在 另 一 个Visual InterDev 实 例 中 打 开 你 不 能 再 一 次 打 开 它 于 是 Visual InterDev 创 建 一 个 新 解 决 方 案 取 代 项 目
Global.asa 文 件 被 装 载 到 编 辑 器 中 如 果 需 要 便 获 取 该 页 面 的 工 作 副本 如 果 项 目 已 经 打 开 Global.asa 文 件 就 作 为 只 读 文 件 装 到 这 个 新 项目 中
注 意 : 关 于 使 用 调 试 器 命 令 的 细 节 参 见 Visual Int erDev 在 线 文 档
如 果 没 对 应 用 开 启 服 务 器 调 试 错 误 就 按 照 页 面 的 文 本 显 示 在 浏 览 器 上在 这 样 情 况 下 包 含 这 个 页 面 的 项 目 在 Visual Int erDev 中 打 开 并 开 始 调 试如 上 所 述
重 新 启 动 Gl ob al .a sa 文 件
你 不 能 停 下 来 用 刷 新 Global.asa 文 件 的 办 法 来 重 新 启 动 脚 本 要 返 回 到Applicatio n_OnStart 和 Session_On Start 过 程 你 就 必 须 刷 新 这 个 文 件 或 再一 次 触 发 该 事 件 否 则 就 要 重 新 启 动 应 用
所 有 过 程 都 返 回 到 Global.asa 文 件
- 在 编 辑 器 中 改 变 Global.asa 文 件 然 后 把 它 用 到 服 务 器 上或 者
停 下 来 重 新 启 动 Web 服 务 器
这 便 重 新 启 动 应 用 和 会 话 再 一 次 在 Global.asa 文 件 中 运 行 过 程