Discussion:
ISAPI extension in IIS 7
(too old to reply)
@discussions.microsoft.com>
2008-04-14 14:48:01 UTC
Permalink
We have an application that is supported on IIS 6.0 and 5.0. Now, we are
facing an issue in configuring this application with IIS 7.0 on Win2K8. This
application works as an ISAPI extension. We tried a few things, but are not
able to load the ISAPIapp.dll in the IIS web-server. We have tried the
following things:


First, we added ISAPIapp.dll as an ISAPI filter in the “website”, and added
the Handler Mapping for ISAPIapp.dll at the server level in “inetmgr”. On
doing so we are getting an error, “HTTP Error 500.0 - Internal Server Error,
Calling LoadLibraryEx on ISAPI filter "C:\Program
Files\...\application\bin\ISAPIapp.dll" failed. Error Code 0x8007007e”.

On doing some research on this error, it says that either “the dll is
incorrect” or “IIS received the request; however, an internal error occurred
during the processing of the request. The root cause of this error depends on
which module handles the request and what was happening in the worker process
when this error occurred”.

Then on further research we found that the architecture of IIS 7.0 is quite
different from that of IIS 6.0. A Microsoft TechNet article says that “In IIS
7.0, modules replace the functionality that ISAPI filters provided in IIS
6.0. However, you can still add ISAPI filters if you require the
functionality that they provide.”


Hence we enabled the ISAPIModule and ISAPIFilterModule in the “inetmgr”.
Now, these modules are Native Modules in IIS 7.0. On changing these modules
in the inetmgr and providing the path to the ISAPIapp.dll, IIS stopped
responding, and started giving HTTP Error 503.


Now the problem is that on loading ISAPIapp.dll as ISAPI filter, it says
that the dll is not correct, while if we try to configure it through modules,
then the IIS does not start correctly.
David Wang
2008-04-15 03:42:06 UTC
Permalink
Post by @discussions.microsoft.com>
We have an application that is supported on IIS 6.0 and 5.0. Now, we are
facing an issue in configuring this application with IIS 7.0 on Win2K8. This
application works as an ISAPI extension. We tried a few things, but are not
able to load the ISAPIapp.dll in the IIS web-server. We have tried the
First, we added ISAPIapp.dll as an ISAPI filter in the "website", and added
the Handler Mapping for ISAPIapp.dll at the server level in "inetmgr". On
doing so we are getting an error, "HTTP Error 500.0 - Internal Server Error,
Calling LoadLibraryEx on ISAPI filter "C:\Program
Files\...\application\bin\ISAPIapp.dll" failed. Error Code 0x8007007e".
On doing some research on this error, it says that either "the dll is
incorrect" or "IIS received the request; however, an internal error occurred
during the processing of the request. The root cause of this error depends on
which module handles the request and what was happening in the worker process
when this error occurred".
Then on further research we found that the architecture of IIS 7.0 is quite
different from that of IIS 6.0. A Microsoft TechNet article says that "In IIS
7.0, modules replace the functionality that ISAPI filters provided in IIS
6.0. However, you can still add ISAPI filters if you require the
functionality that they provide."
Hence we enabled the ISAPIModule and ISAPIFilterModule in the "inetmgr".
Now, these modules are Native Modules in IIS 7.0. On changing these modules
in the inetmgr and providing the path to the ISAPIapp.dll, IIS stopped
responding, and started giving HTTP Error 503.
Now the problem is that on loading ISAPIapp.dll as ISAPI filter, it says
that the dll is not correct, while if we try to configure it through modules,
then the IIS does not start correctly.
1. Undo all your changes.
2. Install the ISAPI Extension Feature.
3a. If you were using ADSI/WMI/ABO to configure, then also install the
IIS6 Metabase Compatibility Feature and then run your application
setup. It should just work.
3b. If you configure by hand, then simply enable "Execute" permissions
on the vdir as well as add the ISAPI DLL to Web Service Extensions,
which is *exactly* the same as you do for IIS6, then it should just
work.

As for everything else that you described -- the failures are all by-
design because you are attempting to configure an ISAPI Extension as
the wrong thing. All you need to do is install ISAPI Extension Support
and then go about configuring your ISAPI as you used to do.

Basically, if you try to touch configuration sections with "module",
"handler", or "filter" in their names, then you're doing the wrong
thing and IIS7 will give back either stern/technical warnings or fail
with 503.


//David
http://w3-4u.blogspot.com
http://blogs.msdn.com/David.Wang
//
Boris Byk
2008-05-09 18:26:01 UTC
Permalink
Try to pull your .dll out of "Program Files" directory. I experienced the
same problems untill I eventually put my .dll to a folder with path without
whitespaces.
Post by @discussions.microsoft.com>
We have an application that is supported on IIS 6.0 and 5.0. Now, we are
facing an issue in configuring this application with IIS 7.0 on Win2K8. This
application works as an ISAPI extension. We tried a few things, but are not
able to load the ISAPIapp.dll in the IIS web-server. We have tried the
First, we added ISAPIapp.dll as an ISAPI filter in the “website”, and added
the Handler Mapping for ISAPIapp.dll at the server level in “inetmgr”. On
doing so we are getting an error, “HTTP Error 500.0 - Internal Server Error,
Calling LoadLibraryEx on ISAPI filter "C:\Program
Files\...\application\bin\ISAPIapp.dll" failed. Error Code 0x8007007e”.
On doing some research on this error, it says that either “the dll is
incorrect” or “IIS received the request; however, an internal error occurred
during the processing of the request. The root cause of this error depends on
which module handles the request and what was happening in the worker process
when this error occurred”.
Then on further research we found that the architecture of IIS 7.0 is quite
different from that of IIS 6.0. A Microsoft TechNet article says that “In IIS
7.0, modules replace the functionality that ISAPI filters provided in IIS
6.0. However, you can still add ISAPI filters if you require the
functionality that they provide.”
Hence we enabled the ISAPIModule and ISAPIFilterModule in the “inetmgr”.
Now, these modules are Native Modules in IIS 7.0. On changing these modules
in the inetmgr and providing the path to the ISAPIapp.dll, IIS stopped
responding, and started giving HTTP Error 503.
Now the problem is that on loading ISAPIapp.dll as ISAPI filter, it says
that the dll is not correct, while if we try to configure it through modules,
then the IIS does not start correctly.
David Wang
2008-05-09 18:55:53 UTC
Permalink
Thanks for replying, but I am confused by that statement.

IIS has been perfectly fine with Long FileNames for quite some time.
However, the ISAPI DLL may not be fine with Long FileNames and fail
loading, which would return that error to IIS's LoadLibraryEx()
attempt.

This specific issue is basically "by-design". User says they have an
ISAPI Extension DLL. They try to configure it as an ISAPI Filter and
an IIS Module, neither of which accept such a configuration. Both will
fail with 503 saying so, which is exactly what happened.

Solution is to simply enable ISAPI Extension feature in IIS7 and then
do everything as from IIS6 -- enable "Scripts and Executables" execute
permission and add Web Service Extension for the ISAPI Extension DLL.

Of course, if Request Filtering is turned on, there are additional
problems with trying to run an ISAPI Extension DLL out of an ASP.Net
"bin" directory because it'll be denied as well.


//David
http://w3-4u.blogspot.com
http://blogs.msdn.com/David.Wang
//
Post by Boris Byk
Try to pull your .dll out of "Program Files" directory. I experienced the
same problems untill I eventually put my .dll to a folder with path without
whitespaces.
Post by @discussions.microsoft.com>
We have an application that is supported on IIS 6.0 and 5.0. Now, we are
facing an issue in configuring this application with IIS 7.0 on Win2K8. This
application works as an ISAPI extension. We tried a few things, but are not
able to load the ISAPIapp.dll in the IIS web-server. We have tried the
First, we added ISAPIapp.dll as an ISAPI filter in the “website”, and added
the Handler Mapping for ISAPIapp.dll at the server level in “inetmgr”. On
doing so we are getting an error, “HTTP Error 500.0 - Internal Server Error,
Calling LoadLibraryEx on ISAPI filter "C:\Program
Files\...\application\bin\ISAPIapp.dll" failed. Error Code 0x8007007e”.
On doing some research on this error, it says that either “the dll is
incorrect” or “IIS received the request; however, an internal error occurred
during the processing of the request. The root cause of this error depends on
which module handles the request and what was happening in the worker process
when this error occurred”.
Then on further research we found that the architecture of IIS 7.0 is quite
different from that of IIS 6.0. A Microsoft TechNet article says that “In IIS
7.0, modules replace the functionality that ISAPI filters provided in IIS
6.0. However, you can still add ISAPI filters if you require the
functionality that they provide.”
Hence we enabled the ISAPIModule and ISAPIFilterModule in the “inetmgr”.
Now, these modules are Native Modules in IIS 7.0. On changing these modules
in the inetmgr and providing the path to the ISAPIapp.dll, IIS stopped
responding, and started giving HTTP Error 503.
Now the problem is that on loading ISAPIapp.dll as ISAPI filter, it says
that the dll is not correct, while if we try to configure it through modules,
then the IIS does not start correctly.- Hide quoted text -
- Show quoted text -
Boris Byk
2008-05-09 19:59:02 UTC
Permalink
My attention was attracted by the following user's words: "“HTTP Error 500.0
- Internal Server Error, Calling LoadLibraryEx on ISAPI filter "C:\Program
Files\...\application\bin\ISAPIapp.dll". It matches to my recent ISAPI
filters experience in IIS 7. I'm sorry if the advice is irrelevant.
Post by David Wang
Thanks for replying, but I am confused by that statement.
IIS has been perfectly fine with Long FileNames for quite some time.
However, the ISAPI DLL may not be fine with Long FileNames and fail
loading, which would return that error to IIS's LoadLibraryEx()
attempt.
This specific issue is basically "by-design". User says they have an
ISAPI Extension DLL. They try to configure it as an ISAPI Filter and
an IIS Module, neither of which accept such a configuration. Both will
fail with 503 saying so, which is exactly what happened.
Solution is to simply enable ISAPI Extension feature in IIS7 and then
do everything as from IIS6 -- enable "Scripts and Executables" execute
permission and add Web Service Extension for the ISAPI Extension DLL.
Of course, if Request Filtering is turned on, there are additional
problems with trying to run an ISAPI Extension DLL out of an ASP.Net
"bin" directory because it'll be denied as well.
//David
http://w3-4u.blogspot.com
http://blogs.msdn.com/David.Wang
//
Post by Boris Byk
Try to pull your .dll out of "Program Files" directory. I experienced the
same problems untill I eventually put my .dll to a folder with path without
whitespaces.
Post by @discussions.microsoft.com>
We have an application that is supported on IIS 6.0 and 5.0. Now, we are
facing an issue in configuring this application with IIS 7.0 on Win2K8. This
application works as an ISAPI extension. We tried a few things, but are not
able to load the ISAPIapp.dll in the IIS web-server. We have tried the
First, we added ISAPIapp.dll as an ISAPI filter in the “website”, and added
the Handler Mapping for ISAPIapp.dll at the server level in “inetmgr”. On
doing so we are getting an error, “HTTP Error 500.0 - Internal Server Error,
Calling LoadLibraryEx on ISAPI filter "C:\Program
Files\...\application\bin\ISAPIapp.dll" failed. Error Code 0x8007007e”..
On doing some research on this error, it says that either “the dll is
incorrect” or “IIS received the request; however, an internal error occurred
during the processing of the request. The root cause of this error depends on
which module handles the request and what was happening in the worker process
when this error occurred”.
Then on further research we found that the architecture of IIS 7.0 is quite
different from that of IIS 6.0. A Microsoft TechNet article says that “In IIS
7.0, modules replace the functionality that ISAPI filters provided in IIS
6.0. However, you can still add ISAPI filters if you require the
functionality that they provide.”
Hence we enabled the ISAPIModule and ISAPIFilterModule in the “inetmgr”.
Now, these modules are Native Modules in IIS 7.0. On changing these modules
in the inetmgr and providing the path to the ISAPIapp.dll, IIS stopped
responding, and started giving HTTP Error 503.
Now the problem is that on loading ISAPIapp.dll as ISAPI filter, it says
that the dll is not correct, while if we try to configure it through modules,
then the IIS does not start correctly.- Hide quoted text -
- Show quoted text -
Continue reading on narkive:
Loading...