【问题标题】:IIS 5.0 Calling COM+ Objects from ASP scriptsIIS 5.0 从 ASP 脚本调用 COM 对象
【发布时间】:2009-09-23 16:25:15
【问题描述】:

注意:我无法确定这是否更适合 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 编程背景,所以不知道如何开始。

感谢您的帮助。

【问题讨论】:

    标签: com asp-classic iis-5


    【解决方案1】:

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

    隔离问题的一种更有效的方法是查看处理时间最长的页面的 IIS 日志,并让程序员分析该页面中发生的情况以及正在调用的对象。

    具体来说,检查 IIS 日志中的“耗时”列。

    【讨论】:

    • 感谢您的回答,这真的很有帮助。我已经开始将我的 IIS 日志拉入 SQl Server 以找出导致问题的页面。希望这会给我一个合理的开始。我能否请您详细说明一下:“......让程序员分析该页面中发生的事情以及正在调用的对象。”您将如何分析页面以及调用了哪些对象?
    • 这取决于页面是用什么语言编写的,但是一个称职的程序员应该能够隔离脚本中性能不佳的区域。 Eduardo 的回答是一个好的开始,但我认为对对象的关注可能是一个红鲱鱼。几乎所有事情都是通过某种程度的对象来完成的。让他们尝试将代码缩小到有问题的部分,然后担心那里使用了哪些对象(如有必要)。此外,请注意,许多性能问题仅在大量用户同时访问该站点时才会出现。它可以在单个用户的情况下表现出色。
    【解决方案2】:

    要确定正在调用哪些对象,请查找

     <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

    【讨论】:

      猜你喜欢
      • 2010-11-14
      • 2011-09-29
      • 1970-01-01
      • 2014-03-05
      • 2021-09-14
      • 1970-01-01
      • 2018-12-31
      • 2014-02-05
      • 1970-01-01
      相关资源
      最近更新 更多