DOCUMENT:Q163166 19-APR-2000 [iis] TITLE :HOWTO: Fixing the "500 Extended Server Error" Problem on ISAPI PRODUCT :Internet Information Server PROD/VER:winnt:1.0,2.0,3.0,4.0,5.0 OPER/SYS: KEYWORDS:kbiis300 kbiis400 kbiis500 ====================================================================== ------------------------------------------------------------------------------- The information in this article applies to: - Microsoft Internet Information Server versions 1.0, 2.0, 3.0, 4.0, 5.0 ------------------------------------------------------------------------------- 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. REFERENCES ========== For additional information, please see the following article in the Microsoft Knowledge Base: Q135338 How To View Exported Functions in a DLL. (c) Microsoft Corporation 1997, All Rights Reserved. Contributions by Leon Braginski, Microsoft Corporation Additional query words: ====================================================================== Keywords : kbiis300 kbiis400 kbiis500 Technology : kbiisSearch kbiis500 kbiis400 kbiis300 kbiis200 kbiis100 Version : winnt:1.0,2.0,3.0,4.0,5.0 Issue type : kbhowto ============================================================================= THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY. Copyright Microsoft Corporation 2000.