【问题标题】:Can't Create ActiveX Object无法创建 ActiveX 对象
【发布时间】:2013-10-22 18:45:39
【问题描述】:

我正在为我的网站使用第三方支付网关。

一旦客户填写金额详细信息和联系方式,页面将被重定向到其他.asp页面。

在那个asp页面中,我写了下面的代码。

    Dim pipe

    Set pipe = Server.CreateObject("e24PaymentPipe.e24PaymentPipe.1")


    pipe.ResourcePath=resourcePath  'mandatory 
    pipe.Alias=aliasName            'mandatory 
    pipe.Action=action              'mandatory 
    pipe.ResponseURL=receiptURL     'mandatory 
    pipe.ErrorURL=errorURL      'mandatory 
    pipe.Amt=amount                 'mandatory 

    pipe.Currency=curr
    pipe.Language=language
    pipe.TrackId=trackId

    pipe.Udf1=donateamt
    pipe.Udf2=email
    pipe.Udf3=phone
    pipe.Udf4=baddress
    pipe.Udf5=fname

但我只在第二行出现错误。 错误提示,无法创建 Activex 对象。

我已经成功注册了e24paymentpipe.dll,但是还是报错。

谁能帮帮我..?

【问题讨论】:

  • 查看注册表 HKEY_CLASSES_ROOT - 查找是否存在 e24PaymentPipe.e24PaymentPipe,检查关联的 CLSID 并找到此 CLSID - 检查它是否指向正确的 dll
  • Windows 日志中有什么内容?您需要在那里检查以查看是否有更多与失败有关的诊断。就个人而言,我要做的第一件事是尝试看看是否可以在 vbscript 中手动执行代码(使用 cscript.exe),然后尝试找出 COM 服务器未实例化的原因。
  • 你在哪台服务器上? IIS 运行的是 32 位模式吗?您是在 32 位还是 64 位中注册组件?
  • @AardVark71 IIS 正在 32 位模式下运行。

标签: asp-classic payment-gateway


【解决方案1】:

IIS 10,缺少 32 位“adrot.dll”的示例,用于 ASP Classic。

这种方法可以应用于另一个“旧”的 32 位 dll-s。

  1. 打开 Windows XP 的安装 CD(或 DVD、iso 等)。
  2. 请放心,文件夹 'X:\i386'('X' 是驱动器号) 包含文件“adrot.dl_”,其中 'dl_' 表示这个文件是压缩的 'dll'。
  3. 以管理员身份打开CMD
  4. 将“adrot.dl_”扩展(解压缩)为“adrot.dll” CMD 中的命令:

    X:\i386> 展开 ADROT.DL_D:\ADROT.DLL

  5. 复制/剪切 ADROT.DLL 到 C:\Windows\SysWOW64, 因为 ADROT.DLL 是 32 位组件,必须在 'SysWOW64' 中。

  6. 在 CMD 中导航到 C:\Windows\SysWOW64 并注册 dll:

    C:\Windows\SysWOW64>regsvr32 adrot.dll

  7. IIS 中,从左窗格(“连接”)打开(双击)“应用程序池”

  8. 找到您的应用程序池(按“名称”列)。
  9. 右键单击应用程序池的名称并打开“高级设置”。
  10. 在“高级设置”中,将“启用 32 位应用程序”设置为“true”。

【讨论】:

    【解决方案2】:

    终于找到我的答案了。 我确实注册了两个 dll(e24payment.dll 和 e24pipe.dll)。 并检查应用程序池。

    在应用程序池中,进入高级设置并检查启用 32 位应用程序是否设置为 false,仅此而已。

    它就像一个魅力。

    【讨论】:

    • 哇,我希望我早点找到这篇文章!虽然在我的情况下,“启用 32 位应用程序”设置已设置为 false,我需要将其设置为 true。
    • 奇怪...我遇到了这个问题,只需将其更改为 True(与您的建议相反),我的应用程序现在可以正常工作了 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    • 2018-01-22
    • 2011-08-15
    • 1970-01-01
    相关资源
    最近更新 更多