如何调试ISAPI扩展DLL?急!!!

askqiao 2003-11-29 09:08:21
各位

望就以下开发环境告知如何调试ISAPI扩展DLL,最好告知实际经验而非各种转帖。多谢!

OS :Windows 2000 Professional, Service Pack 4
IIS :Internet Information Server 5.0
TOOL: MS Visual C++ 6.0 Service Pack 5
...全文
21 2 打赏 收藏 举报
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
coolyangbo 2004-01-04
ISA 在 运 行 时 是IIS 的 一 部 分, 而IIS 又 作 为NT 的 一 个 服 务 而 运 行。 这 一 事 实 使 用 调 试 过 程 变 得 复 杂 了, 因 为 在IIS 运 行 时,VC++ 的 调 试 器 不 能 够 接 管ISA。 为 了 解 决 这 个 问 题, 微 软 公 司 以 两 种 形 式 发 行 了IIS: 作 为 一 项 服 务, 以 及 作 为 一 个 单 独 的 可 执 行 程 序。 对 于 后 一 种 情 况, 我 们 就 可 以 在 命 令 行 上 来 控 制 服 务 器。 虽 然 这 样 可 以 解 决 上 述 问 题 并 使 得 开 发 过 程 变 得 容 易 一 些, 但 实 现 起 来 显 得 很 繁 琐。 下 面 我 们 来 介 绍 这 个 过 程。

---- 当 用 户 处 于debug 调 试 模 式 时,VC++ ( 以 及IIS) 将 在 用 户 的 帐 号 和 权 限 下 运 行。 由 于 通 常IIS 完 成 的 一 些 工 作 是 不 允 许 大 多 数 用 户 有 相 应 的 权 限 的, 因 此 用 户( 或 用 户 的 系 统 管 理 员) 需 要 做 以 下 工 作:

---- ① 在 桌 面 上 选 择“ 开 始\ 程 序\ 管 理 工 具( 公 用)\ 域 用 户 管 理 器”, 打 开 域 用 户 管 理 器;

---- ② 在“ 规 则” 菜 单 中 选 择“ 用 户 权 限”;

---- ③ 选 择“ 显 示 高 级 用 户 权 限” 检 查 框;

---- ④ 在“ 权 限” 下 拉 列 表 中 选 择“ 以 操 作 系 统 方 式 操 作”;

---- ⑤ 选 择“ 添 加” 按 钮 得 到“ 添 加 用 户 及 组” 对 话 框, 选 择“ 显 示 用 户” 按 钮, 并 在“ 名 称” 列 表 中 选 择 用 户 使 用 的 帐 号, 然 后 选 择“ 添 加” 按 钮;

---- ⑥ 选 择“ 确 定” 按 钮;

---- ⑦ 对“ 产 生 安 全 审 核” 权 限 重 复 上 述 步 骤。

---- 为 了 使 这 些 设 置 生 效, 用 户 必 须 先 退 出 登 录, 然 后 再 登 录 回 来。

---- IIS 中 包 含 了 三 项 服 务:FTP Publishing Service, Gopher Publishing Service 和World Wide Web。 由 于 调 试 器 要 在 命 令 行 上 运 行IIS, 所 以 所 有 这 三 项 服 务 都 必 须 停 止。 这 可 以 通 过“ 控 制 面 板” 中 的“ 服 务” 程 序 或 者 使 用IIS 的“Internet 服 务 管 理 器” 来 实 现。 如 果 需 要 进 行 大 量 的 调 试 工 作, 我 们 建 议 用 户 通 过“ 控 制 面 板” 中 的“ 服 务” 程 序 来 关 闭IIS 服 务 并 禁 止 它 们 自 动 启 动, 这 样 可 以 避 免 用 户 每 次 启 动 计 算 机 时 都 要 进 行 关 闭 服 务 的 操 作。

---- 接 下 来 就 必 须 对 工 程 进 行 一 些 配 置 了:

---- ① 在Project 菜 单 中 选 择Settings 菜 单 项;

---- ② 选 择Debug 面 板, 并 在Category 下 拉 列 表 中 选 择General;

---- ③ 在Executable for debug session 框 中 输 入 或 者 寻 找IIS 执 行 文 件 的 路 径( 通 常 情 况 下 位 于WINNT\system32\inetsrv\inetinfo.exe);

---- ④在Program arguments 框 中 输 入 -e w3svc,如 图3 所 示 ; 图3 Debug 面 板 设 置

---- ⑤ 选 择Link 面 板;

---- ⑥ 在Output filename 框 中 输 入 被 编 译 后 的DLL 将 被 放 置 的 路 径 和 文 件 名。 这 个 路 径 必 须 位 于Web 服 务 器 的 根 目 录 下 或 者 某 个 虚 拟 目 标 下, 以 便 客 户 可 以 通 过URL 来 访 问。 例 如, 我 们 的Web 服 务 器 的 根 目 录 是c:\InetPub\wwwroot\, 我 们 把helloweb.dll 放 置 在 该 目 录 下, 这 样 客 户 就 可 以 使 用 下 面 的URL 来 访 问 它:

---- http://www.mysite.com/helloweb.dll
  • 打赏
  • 举报
回复
cmsbai 2003-11-29
我没有太多的这方面的经验,但是就我所知,调试ISAPI非常烦琐,也许是我太没有经验,我是这样调试的:
把DLL方到IIS运行目录下,验证能不能实现其欲设的功能,如果不能,再检查错误,做好了,关掉IIS,把新DLL放入IIS目录,启动IIS。
呵呵,很可能误人子弟。
  • 打赏
  • 举报
回复
发帖
网络编程
加入

1.8w+

社区成员

VC/MFC 网络编程
社区管理员
  • 网络编程
申请成为版主
帖子事件
创建了帖子
2003-11-29 09:08
社区公告
暂无公告