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

Windows Server 2022下IIS配置ASP网站的完整指南 本文详细介绍了在Windows Server 2022环境下使用IIS配置ASP网站的完整步骤,包括环境准备、IIS安装、网站创建、权限设置、安全配置、性能优化及故障排查等关键环节。特别针对ASP网站部署中的常见问题提供了实用解决方案,帮助管理员高效搭建和维护ASP网站。 阅读详情

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

主要的内容见微软的网站: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中调试程序,当程序在那一刹那间跳入断点时,内心是多么的兴奋啊,马上试试吧,我可以保证这个方法是正确的,如果还有问题,可以来信和我联系,呵呵,吃饭去啦。

用c++生成随机迷宫_自动生成随机迷宫(1)prim算法 “程序 = 数据 + 算法”,一款好的作品不单单是代码的堆砌,还有其灵魂的部分,那就是算法;算法是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。算法既然是解决某类型问题的规范,那么我们就学习它,并在我们的作品中使用它。从这一期开始做一个迷宫系列,包括用算法生成随机迷宫,用算法自动寻址走迷宫。 三大迷宫生成算法之一“随机Prim算法不是... 阅读详情

相关推荐

统信UOS服务器上,达梦DM8数据库安装避坑全记录(附大小写敏感设置)

本文详细介绍了在统信UOS服务器版上部署达梦DM8数据库的全过程,包括环境准备、安装流程、数据库实例初始化及关键参数配置,特别是大小写敏感设置的注意事项。提供了从系统配置到性能优化的完整指南,帮助用户避免常见问题,确保数据库稳定运行。

weixin_30647423的博客 332

摘自网络)如何在IIS中调试ISAPI和COM组件

<br />就以共用进程的方式调试我们的组件和ISAPI吧,以WIN2K,VC++6为例,这里是详细的操作步骤: <br /><br />1.确信你的IIS服务已经启动,并且你的ISAPI和COM组件已经通过编译,放在了恰当的位置,比如,ISAPI在正确的虚拟目录,COM组件已经过注册等等。 <br /><br />2.打开你的project,选择Build菜单下的Start   Debug-> Attach   Process. <br /><br />3.出现进程列表,选择Show   System  

xiaoxiaofengqi的专栏 566

海天注塑机弘讯控制器Modbus数据采集实战指南

工业设备数据采集是MES系统、设备监控和工艺追溯的基础,其中注塑机联网是车间数字化的关键环节。Modbus协议作为工业通信的事实标准,以简单、开放、低成本的优势,成为海天注塑机弘讯控制器对外提供数据的主要方式。理解控制器型号与通信参数、捋清寄存器点位表与字节序规则,是稳定采集的前提。通过RS485串口或以太网轮询,可以实时获取产量、温度、压力、报警等关键数据,进而支撑OEE统计、质量追溯与异常监控。本文基于实战项目,以海天注塑机弘讯控制器为例,梳理从接线、参数配置到点位验证的完整流程,为现场工程师提供一套可

weixin_28733777的博客 905

第一个WEB网页

而 Visual FoxPro 是编译执行的语言,漫长的 Fox 历史证明了它处理数据、处理字符串时迅捷的速度,把大量处理数据库、处理字符串的运算放在 Visual FoxPro 编写的 COM 组件里,无疑能提高 ASP 的运行效率。从客户端发送请求,到服务器端的响应,再到 COM 组件的调用和运作,最后返回客户端浏览器能够解析的 HTML 代码描述(这里我们的返回信息中,还包含了XML、DHTML 、CSS,所以不是所有的浏览器都能够解析这些东东,我想 IE 5.5 以上 应该没问题的。

加菲猫的VFP 45

Oracle GoldenGate (OGG) 实战:从安装到故障排查的完整避坑指南

本文提供了一份详尽的Oracle GoldenGate实战指南,涵盖从环境准备、核心进程配置到性能调优与故障排查的全过程。重点解析了OGG安装与部署中的常见陷阱,并分享了确保数据同步链路稳定运行的高级运维技巧与常见故障处理方法,帮助技术人员高效避坑。

weixin_29230649的博客 380

DDR内存条选购避坑指南:单Rank vs 双Rank性能实测对比(附2024年颗粒推荐)

本文深入解析了内存条中单Rank与双Rank设计的原理与性能差异。通过实战测试对比,揭示了双Rank内存在高负载场景(如3D渲染、视频剪辑)中凭借Rank Interleaving技术带来的显著性能优势,并提供了2024年针对不同用户需求的DDR4/DDR5内存选购策略与避坑指南。

ik678901的博客 1128

dll源代码调试全攻略~包括ISAPI,API HOOK,GINA等dll的源代码调试方法~

首先明白一点的是,只要有模块(exe,dll,sys等是模块)对应的正确符号文件,我们都可以使用代码去调试。1:普通dll首先写一个exe加载要调试的dll,下好断点后再按f5,会弹出一个框,让你输入调用该dll的程序,我们只要填入加载该dll的exe的路径即可。或者在project->setting->debug里填入调用该dll的路径也是一样的。2:com,activex控件。

KeSummer的专栏 3483

已解决-Parallels Desktop 16 网络初始化失败:您的虚拟机将继续正常运作,但将无法连接网络

我是月球挖掘机,相信不少打工人为了尝鲜已经更新了MacOS 11 Big Sur,当然,苹果每次的系统大更新,都会给我们软件的功能无法使用惊喜,这次的也不例外。 这个问题是我在更新macOS Big Sur之后,Parallels Desktop打开虚拟机后,提示: 报错信息 网络初始化失败:您的虚拟机将继续正常运作,但将无法连接网络 这是我的软件版本: 起初我以为是我的虚拟机坏了,结果重装了一遍虚拟机,没有任何用处。我开始在网上找方法,只能找到那个使用命令行打开软件的命令,除此之外没有了

月球挖掘机 5万+

dll源代码调试全攻略~包括ISAPI,API HOOK,GINA等dll的源代码调试方法【转】

希望版主手下留情,本应该属于DLL那区的帖子,可是那区人气差,就发布到这里来了,这样会有更多人看到此帖,希望表移动此贴,此文章是我花了半下午写的经验帖。来自我的bolg:http://blog.youkuaiyun.com/KeSummer/archive/2008/06/23/2580114.aspx文章简介:此文是偶多年的呕心沥血调试经验,介绍了8种非常YD用源代码去调试DLL的方法,希望对大家有帮助。首先明白一点的是,只要有模块(exe,dll,sys等是模块)对应的正确符号文件,我们都可以使用代码去调试。1:普

IT旅途 749

WSL2离线安装Ubuntu终极指南:绕过Microsoft Store慢速下载(附最新22.04 LTS离线包)

本文提供WSL2离线安装Ubuntu 22.04 LTS的完整指南,帮助开发者绕过Microsoft Store下载慢的问题。通过PowerShell命令配置环境、获取离线安装包并完成安装,同时包含初始配置、资源优化及常见问题解决方案,助您快速搭建高效的Linux开发环境。

c8d9e0f1的博客 899

时间序列预测 | Python实现LSTM时间序列数据预测

目录LSTM神经网络LSTM原理LSTM数据下载LSTM程序设计导入Python包时序数据处理LSTM模块定义模型训练模型评估参数设定运行结果参考资料致谢 LSTM神经网络 长短期记忆网络——通常简称为“LSTM”——是一种特殊的 RNN,能够学习长期依赖关系。它们由Hochreiter & Schmidhuber (1997)引入,并在后续工作中被许多人提炼和推广。1它们在处理各种各样的问题时效果非常好,现在被广泛使用。LSTM 被明确设计为避免长期依赖问题。长时间记住信息实际上是他们的默认行为

前程算法屋的博客 3911

调试在ASP下运行的COM(Visual C++)

调试在ASP下运行的COM(Visual C++):工作环境:  win2000 , VC6.0 , IIS5.01.写一个调用com的 ASP2.在asp文件中加上使得asp不会被cache.3.假定把asp放在Default Web Site(如c:/Inetpub/wwwroot/)下,在IIS 中选择Default Web Site的属性,在Home Directory tab上,Appl

masterz的专栏 1378

从0到1:用Claude 3.7十日拿下教育部课题申报书(附可修改LaTeX模板)

🟣"作为教育部人文社科项目评审专家,请根据近三年立项数据分析,为[您的学科方向]领域推荐5个具有创新性且符合'十四五'规划的重点选题,要求选题体现交叉学科特征,并标注潜在理论突破点"🟣"根据前期研究基础,创建包含4个研究模块、12个关键节点的三维技术路线图,要求体现实验仿真-实证研究-理论建模的螺旋递进关系,并标注每个节点的预期成果形态"🟣"现在切换至教育部学科评审组组长模式,从选题价值、创新程度、研究可行性三个维度对本申报书进行盲审,生成包含9个扣分风险点的诊断报告及修改优先级排序"

智能AI让学术科研更容易 545

调试分布式 Web 应用程序

调试分布式 Web 应用程序Anand Rajagopalan开发专家电子商务主要支持团队Microsoft Corporation 2000年8月 摘要:深入介绍了用于调试分布式 Web 应用程序的各种工具。目的是在一个基于 Web 的开发环境中,用 Internet Information Services (IIS) Active Server Pages (ASP) 来调试中间层的 Com

软件开发资料汇总 687

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

调试分布式 Web 应用程序 (1)

2000年12月12日 08:25:00 Anand Rajagopalan开发专家电子商务主要支持团队Microsoft Corporation 2000年8月 摘要:深入介绍了用于调试分布式 Web 应用程序的各种工具。目的是在一个基于 Web 的开发环境中,用 Internet Information Services (IIS) Active Server Pages (ASP)

秦梦瑶的专栏 485

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

dll源代码调试全攻略~包括ISAPI,API HOOK,GINA等dll的源代码调试方法

首先明白一点的是,只要有模块(exe,dll,sys等是模块)对应的正确符号文件,我们都可以使用代码去调试。1:普通dll首先写一个exe加载要调试的dll,下好断点后再按f5,会弹出一个框,让你输入调用该dll的程序,我们只要填入加载该dll的exe的路径即可。或者在project->setting->debug里填入调用该dll的路径也是一样的。2:com,ac

超级无敌小地主 1117

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ISAPI筛选器及对ASP源文件的保护

刘玉林  曹二堂(河北经贸大学)摘要:本文介绍了利用ISAPI筛选器保护ASP源文件的方法,并给出一个实例。关键字   IIS,ISAPI,ASP,代码保护1 引言ASP作为一种网络开发的脚本语言,由于编程简单、功能强大,得到了广泛的应用。然而,由于ASP脚本是采用明文(plain text)方式来编写的,所以应用开发商辛苦开发出来的ASP应用程序,一旦发布到运行环境中去后,就很难确保这些"源代码

whqsz的专栏 1471

dll调试技巧

1:普通dll 首先写一个exe加载要调试的dll,下好断点后再按f5,会弹出一个框,让你输入调用该dll的程序,我们只要填入加载该dll的exe的路径即可。 或者在project->setting->debug里填入调用该dll的路径也是一样的。 2:com,activex控件。 和上述基本一致。如果是IE插件,那么就填入IE的路径。 3:shell扩展 这个需要注意一些

programmerES 1822

[转]dll源代码调试全攻略~包括ISAPI,API HOOK,GINA等dll的源代码调试方法

首先明白一点的是,只要有模块(exe,dll,sys等是模块)对应的正确符号文件,我们都可以使用代码去调试。1:普通dll首先写一个exe加载要调试的dll,下好断点后再按f5,会弹出一个框,让你输入调用该dll的程序,我们只要填入加载该dll的exe的路径即可。或者在project->setting->debug里填入调用该dll的路径也是一样的。2:com,acti

超级无敌小地主 1433

ASP老项目维护必看:如何在Win10的IIS上快速搭建兼容性测试环境

本文详细介绍了在Win10的IIS上搭建ASP老项目兼容性测试环境的完整指南。从IIS核心组件安装、ASP支持配置到常见问题解决,提供了一套完整的维护方案,帮助开发者高效维护老旧ASP系统,确保其在新环境中稳定运行。

weixin_30952535的博客 436

D2007开发ISAPI网站

 用D2007开发wap网站已有些时间了,整理了一些心得体会,供大家参考1.打开Delphi2007,新建选择"WebBroker"-->"Web Server Application",选择"ISAPI/NSAPI Dynamic Link Library",生成的Project1.pas单元如下:library Project1;uses ActiveX, ComO

国风的Blog 850
下一篇: 一个历时3年的项目失败记录
softarts
博客等级 码龄26年 9粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值