站内搜索
分类列表
本类阅读排行
本类推荐文章
- ASP技巧:让Len,Left,Right函数识...
- 用ASP实现IE地址栏参数的判断
- 如何实现ASP.NET网站个性化
- 如何在Asp.net中使用HtmlArea编辑...
- 用ASP.Net实现在线压缩和解压缩
- ASP实现不存在的网页就自动发送邮...
- 用ASP取出HTML里面的图片地址的函...
- asp.net跳转页面的三种方法比较
- 一个Winsock组件
- 用WinSock设计Chat程序(转)
- 在MFC应用中深入定制WebBrowser控...
- 这几天有人问关于编应.dll的问题,...
- 在Visual J++中编写ASP COM组件(转...
- 一个显示Grid的VBScript对象
- 好东西,快来看呀:(转载自中华网...
广告
以前收集的一些资料---如何调试ASP服务端的组件技术
作者: 来源: 点击: 日期:2007-5-5 23:34:09
如何调试ASP服务端的组件技术
本文主要介绍如何调试ASP服务端组件技术,包括这个复杂的
出错信息:
一、ASP 0115 Error。
二、代码在单独的EXE文件里面运行良好,但是一旦放入ASP中
产生调用失败的信息
本文背景:
第一种情况:你在你的浏览器中可否看见过这种信息呢?
Error 'ASP 0115'
Unexpected error
/<Web Name>/<ASP file name>.asp
A trappable error occurred in an external object. The script
cannot continue running.
这就是令每个程序员都头疼的ASP 0115错误,这个错误可以由很多原因
而导致的。也许许多人会推测可能是由于微软本身的bug而导致的,
并抱怨是由于微软没有给出响应的补丁。
其实在实践中有一些确实如此,但是大多数情况下事实并不是如此。
而很多是由于你自己写的代码中错误的访问了Inetinfo.exe的进程而产生的。
第二种情况:你是否遇到过这种尴尬的情况,自己写的代码如果是在一个exe项目种
能够良好的运行,但是一旦你从一个ASP页面种调用它的时候,就会失败呢?
同样,发生这个现象的原因也很多,而其中的大多数原因是由于ASP是运行
在一个特定的系统帐号下的,在这样的背景下,它运行的权限是一个不
容忽视的问题。
我想,做了这么久的程序员,很多人都有丰富地单独调试一个EXE程序的
经验了,但是当你是在编写运行在IIS环境下的程序时,你将面临和传统
的调试更多的挑战。
尽管可以使用VB或则VC++来编写ASP的组件,但是VC++的调试器都将是你
最好的调试工具。
准备好你的组件
为了调试你编写的组件,你必须要有调试需要的信息。 Symbols允许在你
的组件出错时显示出是你编写的代码中的第几行出现了错误。
那我们在VB中如何生成组件需要的symbols呢?
如果你的组件是使用VB编写的话,你可以通过选择Compile菜单中的Project
Properties命令来建立你的组件的调试信息.
确保你将代码编译成'Native Code'和使用'No Optimization'.
那我们在VC++中如何生成组件需要的symbols呢?
如果你的组件是使用VC++编写的话,最简单的方法是选择调试配置来生成
调试信息。从Build菜单中单击'Set Active Project Configuration'.你
将发现'Win32 Debug'这个选项。
或则, 你可以手工来定义组件需要包含的调试出错信息,选择Project菜单
中的Settings然后到Link页.确保Generate debug info被选中。
开始调试进程
在前面已经提到了,我们将使用VC++来完成调试工作。好,运行它,
当然没有必要建立一个项目或则工作间了。
选择Build菜单中的Start Debug中的Attach to Process. 在Attach to
Process对话框中,选中Show System Processes.从列表框中找到
进程inetinfo, 然后单击OK。
下一步,你要确保symbols已经被转载入内存。从Project菜单中,单击
本文主要介绍如何调试ASP服务端组件技术,包括这个复杂的
出错信息:
一、ASP 0115 Error。
二、代码在单独的EXE文件里面运行良好,但是一旦放入ASP中
产生调用失败的信息
本文背景:
第一种情况:你在你的浏览器中可否看见过这种信息呢?
Error 'ASP 0115'
Unexpected error
/<Web Name>/<ASP file name>.asp
A trappable error occurred in an external object. The script
cannot continue running.
这就是令每个程序员都头疼的ASP 0115错误,这个错误可以由很多原因
而导致的。也许许多人会推测可能是由于微软本身的bug而导致的,
并抱怨是由于微软没有给出响应的补丁。
其实在实践中有一些确实如此,但是大多数情况下事实并不是如此。
而很多是由于你自己写的代码中错误的访问了Inetinfo.exe的进程而产生的。
第二种情况:你是否遇到过这种尴尬的情况,自己写的代码如果是在一个exe项目种
能够良好的运行,但是一旦你从一个ASP页面种调用它的时候,就会失败呢?
同样,发生这个现象的原因也很多,而其中的大多数原因是由于ASP是运行
在一个特定的系统帐号下的,在这样的背景下,它运行的权限是一个不
容忽视的问题。
我想,做了这么久的程序员,很多人都有丰富地单独调试一个EXE程序的
经验了,但是当你是在编写运行在IIS环境下的程序时,你将面临和传统
的调试更多的挑战。
尽管可以使用VB或则VC++来编写ASP的组件,但是VC++的调试器都将是你
最好的调试工具。
准备好你的组件
为了调试你编写的组件,你必须要有调试需要的信息。 Symbols允许在你
的组件出错时显示出是你编写的代码中的第几行出现了错误。
那我们在VB中如何生成组件需要的symbols呢?
如果你的组件是使用VB编写的话,你可以通过选择Compile菜单中的Project
Properties命令来建立你的组件的调试信息.
确保你将代码编译成'Native Code'和使用'No Optimization'.
那我们在VC++中如何生成组件需要的symbols呢?
如果你的组件是使用VC++编写的话,最简单的方法是选择调试配置来生成
调试信息。从Build菜单中单击'Set Active Project Configuration'.你
将发现'Win32 Debug'这个选项。
或则, 你可以手工来定义组件需要包含的调试出错信息,选择Project菜单
中的Settings然后到Link页.确保Generate debug info被选中。
开始调试进程
在前面已经提到了,我们将使用VC++来完成调试工作。好,运行它,
当然没有必要建立一个项目或则工作间了。
选择Build菜单中的Start Debug中的Attach to Process. 在Attach to
Process对话框中,选中Show System Processes.从列表框中找到
进程inetinfo, 然后单击OK。
下一步,你要确保symbols已经被转载入内存。从Project菜单中,单击
以前收集的一些资料---如何调试ASP服务端的组件技术 评论
