Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ISAPI Extension and IIS 7: "Calling GetProcAddress on ISAPI filter failed" on x64

1,413 views
Skip to first unread message

Jeffrey Walton

unread,
Oct 4, 2009, 6:33:59 PM10/4/09
to
Hi All,

I found one previous question [1] on the message for x64 machines.
Unfortunately, the answer did not apply. My apologies if this has been
answered elsewhere.

OS: Vista Home Premium, SP2, Fullt Patched
Additional Windows Features: All 'Internet Information Services'
installed

I have an ISAPI extension DLL. The dll exports the three functions:
GetExtensionVersion, HttpExtensionProc, and TerminateExtension.

I added a Virtual Directory which points to ...\Debug\x64\ (Visual
Studio output directory, with PDB). I also added the ISAPI Filter ...
\Debug\x64\MyExtension.dll.

When I restart the site and browse to http://localhost, I receive the
message, "Calling GetProcAddress on ISAPI filter "C:\Users\Public
\Programs\MyExtension\Debug\x64\myextension.dll" failed". Additional
information is listed below.

If I configure the Virtual Directory and ISAPI Filter to use the x86
directories, the DLL loads. I have verified that inetinfo.exe is a 64
bit image.

Any ideas on what I might have done wrong such that my 64 bit gear
won't load on a 64 bit machine (with a 64 bitinetinfo)?

Thanks,
Jeffrey Walton

[1] http://groups.google.com/group/microsoft.public.inetserver.iis/browse_thread/thread/f07754beb0db8980/b90d5f47d42ffc45

Jeffrey Walton

unread,
Oct 4, 2009, 6:52:22 PM10/4/09
to
Additional Information:

Module IIS Web Core
Notification Unknown
Handler StaticFile
Error Code 0x8007007f

Requested URL http://localhost:80/
Physical Path C:\inetpub\wwwroot\Download Test\
Logon Method Not yet determined
Logon User Not yet determined

...

Likely Cause, Things to Try, etc


On Oct 4, 6:33 pm, Jeffrey Walton <noloa...@gmail.com> wrote:
> Hi All,
>
> I found one previous question [1] on the message for x64 machines.
> Unfortunately, the answer did not apply. My apologies if this has been
> answered elsewhere.
>
> OS: Vista Home Premium, SP2, Fullt Patched
> Additional Windows Features: All 'Internet Information Services'
> installed
>
> I have an ISAPI extension DLL. The dll exports the three functions:
> GetExtensionVersion, HttpExtensionProc, and TerminateExtension.
>
> I added a Virtual Directory which points to ...\Debug\x64\ (Visual
> Studio output directory, with PDB). I also added the ISAPI Filter ...
> \Debug\x64\MyExtension.dll.
>

> When I restart the site and browse tohttp://localhost, I receive the


> message, "Calling GetProcAddress on ISAPI filter "C:\Users\Public
> \Programs\MyExtension\Debug\x64\myextension.dll" failed". Additional
> information is listed below.
>
> If I configure the Virtual Directory and ISAPI Filter to use the x86
> directories, the DLL loads. I have verified that inetinfo.exe is a 64
> bit image.
>
> Any ideas on what I might have done wrong such that my 64 bit gear
> won't load on a 64 bit machine (with a 64 bitinetinfo)?
>
> Thanks,
> Jeffrey Walton
>

> [1]http://groups.google.com/group/microsoft.public.inetserver.iis/browse...

David Wang

unread,
Nov 8, 2009, 6:21:17 AM11/8/09
to
On Oct 4, 2:33 pm, Jeffrey Walton <noloa...@gmail.com> wrote:
> Hi All,
>
> I found one previous question [1] on the message for x64 machines.
> Unfortunately, the answer did not apply. My apologies if this has been
> answered elsewhere.
>
> OS: Vista Home Premium, SP2, Fullt Patched
> Additional Windows Features: All 'Internet Information Services'
> installed
>
> I have an ISAPI extension DLL. The dll exports the three functions:
> GetExtensionVersion, HttpExtensionProc, and TerminateExtension.
>
> I added a Virtual Directory which points to ...\Debug\x64\ (Visual
> Studio output directory, with PDB). I also added the ISAPI Filter ...
> \Debug\x64\MyExtension.dll.
>
> When I restart the site and browse tohttp://localhost, I receive the

> message, "Calling GetProcAddress on ISAPI filter "C:\Users\Public
> \Programs\MyExtension\Debug\x64\myextension.dll" failed". Additional
> information is listed below.
>
> If I configure the Virtual Directory and ISAPI Filter to use the x86
> directories, the DLL loads. I have verified that inetinfo.exe is a 64
> bit image.
>
> Any ideas on what I might have done wrong such that my 64 bit gear
> won't load on a 64 bit machine (with a 64 bitinetinfo)?
>
> Thanks,
> Jeffrey Walton
>
> [1]http://groups.google.com/group/microsoft.public.inetserver.iis/browse...


The bitness of your ISAPI DLL must match the bitness of the
Application Pool running it.

The bitness of inetinfo.exe is no longer relevant for ISAPI DLL with
IIS 7.0 in Vista because user DLLs no longer load there.

It sounds like you have a 32bit ISAPI DLL. It will only correctly load
in 32bit Application Pools. It will fail to load in any non-32bit
Application Pools and cause 503 failures. On IIS7 you can setup
preCondition="bitness32" to ensure that the 32bit ISAPI DLL only loads
in a 32bit Application Pool to avoid the failures, but then the ISAPI
is not running in 64bit Application Pool despite you thinking it is
configured to run.


//David
http://w3-4u.blogspot.com
http://blogs.msdn.com/David.Wang
//

0 new messages