Can't Create ActiveX Object
Asked Answered
M

2

6

I am using third party payment gateway for my site.

Once customer fills amount detail and contact detail, page will be redirected to other .asp page.

In that asp page ,i have written below code.

    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

But i am getting error at 2nd line only . The error says , Can't create Activex Object.

I have successfully registered e24paymentpipe.dll, but still i am getting error.

Can anyone please help me..?

Macropterous answered 15/10, 2013 at 4:11 Comment(4)
look in registry HKEY_CLASSES_ROOT - find if there is e24PaymentPipe.e24PaymentPipe, check what CLSID is associated and find this CLSID - check it is points to proper dllMismate
What's in the windows logs? You need to check there to see if there are any more diagnostics pertaining to the fail. Personally the first thing I would do is to try and see if I can execute the code manually in vbscript (using cscript.exe) and then try and work out why the COM Server is not instantiating.Wagonlit
Which server are you on? Is IIS running is 32-bit mode? Did you register the component in 32-bit or 64-bit?Neoimpressionism
@Neoimpressionism IIS is running in 32 Bit mode.Macropterous
M
15

Finally found my answer. I did register both dlls (e24payment.dll and e24pipe.dll). And also check application pool.

In application pool, go to Advanced setting and check that Enable 32 bit application is set to false and that's it.

It worked like a charm.

Macropterous answered 21/10, 2013 at 4:56 Comment(2)
Wow, I wish I had found this post much earlier! Although in my case, the "Enable 32 bit applications" setting was already set to false and I needed to set it to true.Aristides
Weird... I had this issue and just had to change it to True (the opposite of your advice) and my application now works fine :)Stich
A
2

IIS 10, example with missing 32-bit 'adrot.dll', used in ASP Classic.

This approach can be applied for another 'old' 32-bit dll-s.

  1. Open installation CD(or DVD, iso, etc.) of Windows XP.
  2. Be assure of, that folder 'X:\i386'('X' is drive letter) contains file 'adrot.dl_', where 'dl_' means that this file is compressed 'dll'.
  3. Open CMD as administrator.
  4. Expand(decompress) 'adrot.dl_' to 'adrot.dll' by command in CMD :

    X:\i386> expand ADROT.DL_ D:\ADROT.DLL

  5. Copy/Cut ADROT.DLL to C:\Windows\SysWOW64, because ADROT.DLL is 32bit component and must to be in 'SysWOW64'.

  6. In CMD navigate to C:\Windows\SysWOW64 and register dll :

    C:\Windows\SysWOW64>regsvr32 adrot.dll

  7. In IIS, from left pane('Connections'), open(double click) 'Application Pools'

  8. Find your Application Pool(by column 'Name').
  9. Right click over name of your Application Pool and open 'Advanced Settings'.
  10. In 'Advanced Settings', set 'Enable 32-Bit Applications' to 'true'.
Adopted answered 30/3, 2018 at 0:13 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.