Asp classic 使用COM+;动态链接库

Asp classic 使用COM+;动态链接库,asp-classic,com,Asp Classic,Com,我有一个旧网站,我的任务是修复后,它打破了。我们得到以下错误: ActiveX component can't create object for aBRR.Generato`r 该行代码为: set taMaker = createObject("aBRR.Generator") 我在一台旧机器上找到了DLL aBRR.DLL。我认为它需要进入: e$\components\COM+\theAppName\ 要将其安装到COM+文件夹中,是否只需将其放入其中?还有别的吗 我是否只需向DL

我有一个旧网站,我的任务是修复后,它打破了。我们得到以下错误:

ActiveX component can't create object for aBRR.Generato`r
该行代码为:

set taMaker = createObject("aBRR.Generator")
我在一台旧机器上找到了DLL aBRR.DLL。我认为它需要进入:

e$\components\COM+\theAppName\
  • 要将其安装到COM+文件夹中,是否只需将其放入其中?还有别的吗
  • 我是否只需向DLL添加具有哪些权限的IUSR

  • 我想这已经完成了,但它仍然给出了错误。

    如果它是一个经典的COM DLL,您只需将其注册到

    但是,如果库依赖于COM+,则需要将其放置在COM+应用程序中。这样,对
    createObject()
    的任何调用都会被COM+目录管理器拦截,从而确保该对象接收额外的服务


    有关更多详细信息,请参阅链接。

    这可能是另一个Windows Update KB4340558问题。这里有一个最近的问题,对于任何使用经典ASP的第三方组件的人来说都是必读的。处理32/64位COM时,没有什么是简单的。重要的是要记住,根据您注册COM DLL库(64/32位Windows子系统)的位置,有两个
    regsvr32.exe
    副本。如果需要,regsvr32可以推断COM DLL的位并生成另一个进程。请参阅文章。这可能是一个功能(不确定,我第一次听说它),但在我使用
    regsvr32.exe
    注册32位COM的这些年中,它从未使用过不正确的版本。您可以自己测试它,并分别在32/64位注册表中找到条目。这很奇怪,因为regsvr32应该检测位不匹配。我可以确认它也可以以另一种方式工作,即使用
    SysWOW64\regsvr32
    注册64位COM DLL。这将产生
    System32\regsvr32
    ,它将条目写入正确的注册表配置单元。这似乎现在是一项功能,但并不总是如此。这将完全取决于您运行的Windows版本,更安全的做法是首先了解如何使用它们,以及注册时它们会去哪里。