Failed to call LoadLibraryEx in ISAPI filter

I am working on a PHP / C # Soap Service project and I am having a problem getting it running in IIS even though it previously worked a while ago.

When I try to navigate to an ASMX file or WSDL file, I get an IIS error:

HTTP Error 500.0 - Internal Server Error Call LoadLibraryEx on Failed to execute ISAPI filter "C: \ php \ php5isapi.dll"

php5isapi.dll is in the location specified in the error and it is added to the isapi filter in IIS. I know PHP is working fine as the standard .php file works like this, but I don't understand why the ASMX / WSDL files would access the php5isapi dll as it is not PHP. The soap service is in a C # ASMX web service.

This only happens when I include 32 bit applications in the application pool. This must be true, as when it did not throw an ASP exception, indicating that the DLL was not in the correct format.

I know the real service is working fine as it works fine on linux under Mono, so there is something wrong with IIS, but I can't see what.

Thanks for any help you can provide.

+3


source to share


3 answers


Does it look like the same problem no? https://bugs.php.net/bug.php?id=39163

There "FreakTrap at gmail dot com" offers the following solution:

sneakers05 changing the 32 bit setting of the application pool also fixed the issue I was facing with php5isapi.dll.

For those of us who get "Calling LoadLibraryEx" for ISAPI filter "C: \ PHP \ php5isapi.dll" failed "error after the tutorial tried to install:

1) Start with a fresh install of IIS using both ISAPI filters and the extension included.

2) Under basic settings [at the very top of your view of the IIS manager hierarchy, above the application pools], add the following in the following order:

  • ISAPI filter for php5isapi.dll
  • php5isapi.dll ISAPI and CGI limitation entry
  • Mapping a handler for php5isapi.dll


3) Go to the Application Pools section.

4) Right-click on the Default Application Pool and select Advanced Options.

5) Set the second option [Include 32-bit ...] to True.

It is also important that your "Default Website" does not have any unique settings from top-level configurations. This was causing my ISS to exhibit rather strange behavior, which is why I recommend first deleting my default website and creating a new one.

I feel bad just suggesting the link, but I see there isn't much activity, so thought this might help.

+3


source


Common causes for this error are:

  • Missing DLL
  • Mismatched bit versions

If the DLL is present in the correct location, it is very likely that the bit version of the DLL does not match the bit version of the application pool (for example, you are trying to load a 32-bit version of a filter into a 64-bit application pool).



The solution, if you choose to combat this behavior, is to use 32-bit applications and filters in 32-bit application pools; similarly for 64-bit. Customize your websites and move ASPX and PHP code as you see fit. Please be aware that php5isapi.dll was removed a few years ago.

The refactored solution is to install the latest, 32-bit, non-thread safe PHP along with the FastCGI module. Your PHP applications will run regardless of the Include 32-bit Applications setting. You can use:

+1


source


I once had a problem like this where IIS could not find php5isapi.dll.

It turns out that the problem was that I had specified the path to the DLL using the Browse button. This resulted in a shortcut path (with ~ in it).

I actually typed in the path manually (instead of using the browse button) and suddenly IIS was able to find the dll. (and the path was not shortened).

0


source







All Articles