如何调试 ASP 服务器端组件
2006-11-07 20:07
155 查看
如何调试 ASP 服务器端组件
工作环境:winxp + sp2,VC6.0,IIS5.01、写一个调用 com 的 ASP;
2、在 ASP 文件中加上<% Response.Expires = 0 %>使得 ASP 不会被 cache;
3、假定把 asp 放在 Default Web Site (如 c:/Inetpub/wwwroot/)下,在IIS 中选择“默认网站”的属性,在“主目录”标签上,“应用程序保护”右边的 combobox 选“高(独立)”使得 com 运行在独立的进程中,单击“卸载”按钮让 IIS unload 你的 com (If unload button is disabled,you need not click it);
4、把 com 的 action project configuration 设为 Win32 Debug,并且Build;
5、用IE浏览该 asp,例如:http://127.0.0.1/testasp.asp;
6、VC 的 tool->options,在debug tab,enable Just-in-time debugging(checkbox);
7、打开 windows task manager,在 Processes tab 可以看到多个 dllhost.exe。因为你已经
浏览了该 asp,其中一个 dllhost.exe 就是你的 com 的 host。找到这个 host 可以用下面的方法(MSDN有正统方法介绍,但我没有用成功):在你的 com 中加入一些需要大量计算的代码(ASP会调用到的那个 method 中),如
?? int x,y;
?? x=1;
?? y=2;
?? for(int i=0 ;i<10000;i++)
?? {
?????? x=x*y*y;
?? }
然后多按几次 IE 的 refresh,看看哪个 dllhost.exe 使用了 CPU,就是你要找的(其实更简单的方法是查看启动 dllhost.exe 进程的用户名,一般来说 IWAM_* 用户创建的 dllhost.exe 进程就是你要找的 Added by 最后疯狂)。
8、在 windows task manager 选中这个 dllhost.exe,右健选择 debug,会有一个VC6.0程序打开并且 attach 到这个 dllhost.exe 进程,在这个VC的Project->Setting->Debug tab->Category combox,选择 Additional DLLs,在下面的 local name list 中加入你的 com,如 c:/myproject/testcom/debug/testcom.dll (VC 的 debug 可以 attach to process,但在win2000下不行,如果能够用 vc attach 到 dllhost.exe,也可以直接attach);
9、在这个 vc 中打开你想设断点的 com 的源文件,如 c:/myproject/testcom/testcom.cpp,在这个文件中设断点;
10、refresh你的IE,你的断点会生效了!
相关文章推荐
- 如何调试ASP服务端的组件技术2
- c#写的组件如何在asp.net中调试。
- 如何:.NET 组件/控件在设计时的调试
- ★★★【庖丁解牛:纵向切入Asp.net 3.5控件和组件开发技术系列—(2)服务器控件开发中的调试技术】★★★
- IE浏览器如何调试Asp.net的 js代码
- ASP 中利用OWC 服务器端组件动态生成图表
- 如何用 Visual studio 2003/2005 调试 ASP 应用程序、Javascript 代码
- 如何封装JS和CSS文件封装为服务器端控件---ASP.NET 2.0
- asp中如何实现导入客户端Excel文件数据至服务器端Access数据库
- 如何封装JS和CSS文件为服务器端控件---ASP.NET 2.0
- 如何用 Visual studio 2003/2005 调试 ASP 应用程序、Javascript 代码
- 组件开发之ASP.NET中集成资源文件的服务器端控件开发
- 如何把asp.net上的服务在iis调试
- 在使用 ASP 客户端的 Visual Basic IDE 中调试 COM+ 组件时发生错误
- 如何用 Visual studio 2003/2005 调试 ASP 应用程序、JavaScript 代码
- ASP.NET在VS2008中如何实现调试!~~~
- ASP.NET如何实现服务器端身份验证和客户端状态管理?(Session机制和Cookie)
- asp下如何在ADO服务器端利用好缓存技术?
- 如何封装JS和CSS文件封装为服务器端控件---ASP.NET 2.0
- cache:缓存在asp.net中如何管理?服务器端缓存?Session, Application, Cache objectscache ,客户端缓存?Cookies,ViewState