【问题标题】:Get a list of Com Objects in ASP获取 ASP 中的 Com 对象列表
【发布时间】:2009-02-28 11:08:53
【问题描述】:

我手头的一项任务要求我将 ASP 应用程序从一台服务器移动到另一台服务器。为此,我需要两个命令行工具之类的东西来了解以下信息。

  1. 获取此 asp 项目中使用的 com 对象列表。
  2. 获取我现有服务器中已注册 com 对象的列表。

有什么想法吗?

【问题讨论】:

  • 当您实际上只需要知道其中的几个时,在您的服务器上注册的 100.000 个 COM 对象的列表有什么用处?
  • 没错,100 个 COM 对象本身对我来说真的没用。但是,我至少会有一个列表,可以用来知道手头的 COM 对象是否已经注册。
  • 重新注册即可。当它已经注册时,你不会做任何伤害。
  • 知道它是否已注册只是问题的一半。它可以很容易地注册,但 DLL 可能已被删除或移动。正如 svinto 在其他地方所说,确保组件已注册并使用它来创建对象的唯一方法(最好使用与 ASP 相同的用户帐户)。
  • 非常感谢,Rory 指出的脚本和 andynormancx 建议的方法很有帮助。我能够让它在我的新服务器上运行。你们摇滚。

标签: com command-line


【解决方案1】:

快速搜索“CreateObject”应该可以找到所有从 ASP 页面中的 VBScript 创建的 COM 对象。您还应该检查 global.asa 中的任何对象标记,这是 COM 对象实例化的另一种方式。如果您还有服务器端 Javascript,那么您还应该寻找“ActiveXObject”。

我希望您可以使用 grep 等命令行工具提取此信息,但除非您在不同的设置上一遍又一遍地执行此操作,否则在 VS.NET 或 Agent Ransack 之类的东西中执行此操作几乎肯定会更快。

【讨论】:

  • 非常感谢,如何检测 COM 组件是否已注册。或者获取在服务器上注册的 COM 组件列表。
  • 您可以尝试创建对象,看看是否有效,看看它是否已注册。
【解决方案2】:

按照@andynormancx 的建议,在您的代码中搜索适当的调用:

  • 创建对象
  • 获取对象
  • global.asa 中的对象标签
  • ActiveXObject(来自 javascript)

您可以使用 WMI 对象来获取现有服务器上所有 COM 对象的列表。这可能不会很有用,但可能会在您的新服务器上执行此操作,然后在两者之间进行差异以识别可能重要的差异。获取对象列表的示例脚本是here

【讨论】:

    猜你喜欢
    • 2017-11-04
    • 1970-01-01
    • 2011-09-08
    • 1970-01-01
    • 2012-08-07
    • 2011-06-23
    • 2010-11-14
    • 2010-11-18
    • 2014-04-30
    相关资源
    最近更新 更多