How To Fixing the "500 Extended Server Error" Problem on ISAPI (163166)



The information in this article applies to:

  • Microsoft Internet Information Server 1.0
  • Microsoft Internet Information Server 2.0
  • Microsoft Internet Information Server 3.0
  • Microsoft Internet Information Server 4.0
  • Microsoft Internet Information Server 5.0

This article was previously published under Q163166

SUMMARY

This article explains how to fix the following Microsoft Internet Information Server (IIS) error:
500 Server Error. Specified Module could not be found

MORE INFORMATION

When a Web browser (such as Internet Explorer 3.0) invokes an ISAPI DLL on the IIS, the server may display the above error message. The reason for this error is that one or more DLLs on which the ISAPI DLL directly or transitively depends is either not installed on the IIS server or the DLLs are located in a directory that IIS does not search. If this is the case, IIS sends back to the browser an HTTP status code 500, which the browser then displays as the above error message instead of the expected output from the ISAPI DLL.

To fix this situation, copy all the DLLs on which your ISAPI DLL directly or transitively depends to the System32 directory of the IIS server.

A very common cause for this problem is building an ISAPI DLL using the ISAPI Wizard in Visual C++, using the share libraries option, and then not having the Visual C++ and MFC runtime DLLs installed on the IIS server. The Visual C++ and MFC runtime DLLs typically needed are the following.

For Visual C++ 4.2 Debug:

  • Msvcrtd.dll
  • Mfc42d.dll
For Visual C++ 4.2 Release:

  • Msvcrt.dll
  • Mfc42.dll
For Visual C++ 4.1 Debug:

  • Msvcrtd.dll
  • Mfc41d.dll
For Visual C++ 4.1 Release:

  • Msvcrt.dll
  • Mfc41.dll
To generically determine which DLLs you need to install on your IIS server, use either the DUMPBIN utility that ships with Visual C++ (use the /imports option), or the Quick View facility of Windows Explorer (if it is installed) to view what DLLs your ISAPI DLL depends on. Either program provides you with a list of dependent DLLs. Remember you may need to repeat this process for any DLLs listed to determine transitive DLL dependencies.

Modification Type:MajorLast Reviewed:3/4/2005
Keywords:kbhowto KB163166