Question
· Feb 27, 2019

Using CSP Gateway with Apache on WIndows 10 (64-bit) - error "Cannot load c:/InterSystems/IRIS_2019/CSP/bin/CSPa24.dll into server: %1 is not a valid Win32 application"

Hello,

I'm trying to set up an Apache server using CSP Gateway on Windows 10 (64-bit), but am getting the  error "Cannot load c:/InterSystems/IRIS_2019/CSP/bin/CSPa24.dll into server: %1 is not a valid Win32 application" when attempting to start up httpd.exe after adding the CSP-specific section to httpd.conf.

The CSP gateway is 64-bit (CSPGateway-2018.1.1.643.0-win_x64) and so is the Apache install (httpd-2.4.38-o102q-x64-vc14).

The CSPa24.dll file does exist in the specified location. 

Any suggestions appreciated.

Thank you,

Olga

Discussion (5)1
Log in or sign up to continue

What does this command return?

dumpbin /headers c:/InterSystems/IRIS_2019/CSP/bin/CSPa24.dll

For me (on IRIS for Windows (x86-64) 2018.2 (Build 241U) Fri Jan 26 2018 01:06:37 EST) it shows:

Dump of file ./CSPa24.dll

PE signature found

File Type: DLL

FILE HEADER VALUES
             14C machine (x86)
               5 number of sections
        5BC558F7 time date stamp Tue Oct 16 06:20:23 2018
               0 file pointer to symbol table
               0 number of symbols
              E0 size of optional header
            2102 characteristics
                   Executable
                   32 bit word machine
                   DLL

Note 14C machine (x86) value, it means that it's a 32bit dll. If you have similar output, I recommend installing 32 bit apache.

yes, internal private apache webserver (PWS), the embedded one coming with the IRIS installation is still 32-bit on windows x64.

"CSPGateway-2018.1.1.643.0-win_x64"  kit should contain 64-bit CSPGateway binarys/dlls.

You can check bitness/architecture of your apache with the command: >httpd -V

Bitness of apache and CSPGateway binarys *must* match!


There is an alternative to dumpbin in order to check bitness of CSPGateway binarys/dlls which IMHO is easier:

Open executable or dll in editor (notepad, notepad++), check the first printable characters *after* the first occurrence of "PE".

This part is most likely to be surrounded by at least some whitespace (could be a lot of it), so it can be easily done visually.

x86:

PE  L

x64:

PE  d†


HTH,
Bernd