IIS 5.0从ASP脚本调用COM +对象

时间:2009-09-23 16:25:16

标签: com asp-classic iis-5

注意:我无法确定这是否更适合Stack Overflow或Serverfault,所以如果您对此有所了解,请告诉我。

背景:最近,我的服务器(Windows 2000,MS SQL 2005,IIS 5.0,ASP Classic)的特定ASP页面流量激增。这种高峰导致处理器大量消耗,使其达到100%并导致访问者出现各种超时问题。

我们实际上处理的流量大于没有错误的流量。问题似乎是被调用的特定ASP脚本使用了大量的处理器时间。使用Sysinternals的Process Explorer,我发现dllhost.exe占用了所有的处理器时间。看看它的线程,罪魁祸首是调用COMSVCS.DLL,它似乎是COM +对象。

所以,看起来我的ASP页面正在调用COM +对象并且它正在杀死我的处理器。

以下是问题:如何确定我的ASP脚本的哪些部分正在调用COM +对象,以及如何从这些部分开始提高性能?我基本上没有Windows编程的背景,所以我不知道如何开始。

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

COM +或DLLHOST都不是您的问题,它们只是网站和COM对象运行的容器。它们被“馈送”的实际对象是您的问题和/或它们的方式/频率由网络应用程序调用。

一种更有效的方法来隔离问题,就是查看处理时间最长的页面的IIS日志,让程序员分析该页面的内容以及调用的对象。

具体来说,请检查IIS日志中的“time-taken”列。

答案 1 :(得分:1)

要确定要调用的对象,请查找

 <OBJECT ID=MyObject RUNAT=SERVER PROGID=MyDll.MyObject></OBJECT>

 set myObject = server.createobject("MyDll.MyObject")

在ASP页面内。

请注意,这可能是调用标准DLL(而不是COM +对象)。实例化的方法对于两种类型都是相同的。

如果您想知道正在运行的COM +进程,请查看组件服务应用程序。

alt text http://img38.imageshack.us/img38/5062/capturerm.png

相关问题