如何在IIS中调试ISAPI和COM组件

记得这个问题出现过很多次,也有不少朋友抱怨一直没有人能给出实际点的答案,好了,今天终于有空把它写下来,答案就在这里,希望能对各位有帮助。

主要的内容见微软的网站:http://support.microsoft.com/support/kb/articles/Q183/4/80.ASP
我在这里加了一点自己的见解。

首先介绍一点IIS的相关知识,IIS是微软操作系统中的一个服务,它是以操作系统级别权限运行这个服务的,以win2k为例,运行设置->控制面板->管理工具->IIS信息服务,查看其属性,在主目录下面你可以找到应用程序保护一项,有IIS进程,共用的,独立的三项,默认的选项是共用进程。IIS进程指的是ISAPI DLL和COM组件以进程内组件(DLL)的形式运行在IIS这个进程里,这样的结果是运行的速度最快,因为IIS可以直接和DLL、组件交互,但是这样的风险也最大,一旦因为组件(DLL)的设计原因造成系统出错,连带的也会造成IIS进程的崩溃,导致IIS服务中止。

当使用共用进程的时候,系统会启动一个叫做dllhost.exe的进程,把组件(DLL)挂到这个进程中运行,这样,即使因为组件(DLL)的原因导致系统出错时,只能够导致DLLHOST这个进程出错,并不会破坏IIS的核心进程,当发生这样的错误时,IIS用一系列的手段将dllhost进程出错信息返回给客户端,IIS自身继续正常运行。这种方式的运行速度比上一种慢一些,在windows nt中,系统以mtx.exe替代dllhost。

我并没有使用过以独立的进程启动应用程序,不过可以想象,系统会以独立进程的方式启动组件,这样的可靠性最高,但是速度最慢,因为IIS要经过一系列的marshal和unmarshal(列集和散集,可见潘爱民COM原理与应用一书)才能把数据传递给这个独立进程。

这么罗嗦的原因是,有一些旧的debug方法,如VC技术内幕中卡拉斯基给出的关于调试ISAPI的办法,好些人一直没成功,原因在于所给出的方法针对的是以IIS进程方式调试,而IIS的默认方式是共用进程,我没有在IIS进程中调试过,推荐你也不必使用这种方式。

就以共用进程的方式调试我们的组件和ISAPI吧,以WIN2K,VC++6为例,这里是详细的操作步骤:

1.确信你的IIS服务已经启动,并且你的ISAPI和COM组件已经通过编译,放在了恰当的位置,比如,ISAPI在正确的虚拟目录,COM组件已经过注册等等。

2.打开你的project,选择Build菜单下的Start Debug->Attach Process.

3.出现进程列表,选择Show System Processes(显示系统进程)

4.选择dllhost.exe进程(如果你的IIS是以共用方式启动应用程序的话),如果是在WINDOWS NT或者其它的版本,那就选择mtx.exe。

5.这时候系统载入dllhost的资源了,选择project->Settings->Debug,选择Category(类别)->Additional Dlls,这时候加入我们写好的ISAPI DLL或COM组件(就是xxxx.dll)

6.你可以看到OutPut窗口输出一行字,表明组件的资源已经加载。

7.打开需要调试的源文件,在恰当位置加入断点。如果届时不能正确在该处中断,可能是你的PDB文件与DLL文件的版本不一致,那就需要重新编译了。

8.这时候,你就打开浏览器,键入相关网址,然后,你就等待着你的程序被激活吧!

有很长的一段时间,我也在一直尝试着在IIS中调试程序,当程序在那一刹那间跳入断点时,内心是多么的兴奋啊,马上试试吧,我可以保证这个方法是正确的,如果还有问题,可以来信和我联系,呵呵,吃饭去啦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ISAPI PTZ (Pan-Tilt-Zoom) 控制是一种通过网络接口协议(ISAPI)来控制摄像机的移动、俯仰和缩放的技术。 ISAPI是一种用于网络摄像机和视频监控设备的开发接口协议,它提供了一系列的命令和参数,用于控制设备的各种功能。PTZ是一种摄像机的特殊功能,它允许用户通过远程控制来调整摄像机的方位角度、俯仰角度和焦距,从而实现对监控区域的全方位观察。 ISAPI PTZ控制可以通过网络进行远程操作,无需直接接触到设备,方便用户在任何地方对摄像机进行控制。通过ISAPI协议,用户可以发送相应的命令和参数给设备,例如移动到指定的位置、调整视野方向、放大或缩小画面等。设备会接收到这些命令,并根据指令动作来实现相应的功能。 ISAPI PTZ控制在视频监控系统具有重要的应用价值。它可以帮助用户实现对广阔监控区域的全方位观察,提高监控系统的覆盖范围和视野角度。同时,它也提供了远程控制功能,方便用户通过网络进行操作,而无需亲自到现场。这对于监控人员来说是非常便利的,他们可以通过计算机、手机或其他终端设备来操作摄像机,实现快速准确的响应。 综上所述,ISAPI PTZ控制是一种通过网络接口协议来控制摄像机移动、俯仰和缩放的技术。它提供了远程操作的便利性,可以实现对监控区域的全方位观察,提高监控系统的效能和灵活性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

softarts

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值