Delphi InstallTable of ContentsISAPI Url Rewrite

ISAPI Filter Component FAQ


My filter DLL fails to load in IIS. What might be wrong?


1. Make sure that your DLL is in a location where IIS has rights to execute it.

2. Make sure that IIS has correct permissions to access any file, directory or other resource that you are trying to use inside your filter.

3. If you are using IIS 6 or later, make sure you configure IIS to let your ISAPI extension (filter) run. This is done in IIS control panel.

4. You may be compiling your DLL with runtime dependencies. If that is the case, you would need to deploy those dependencies along with your DLL. Otherwise DLL will not work and possibly crash IIS. Simplest solution is to static link the DLL so it can be deployed as a single DLL file. This is configured in your Delphi / C++ Builder project properties.

Some versions of Delphi (5,6) has the following bug that may effect your ability to write DLLs using Delphi Pascal


Why isn't DLLPROC being called?


Due to RTL changes, the DLLProc was not being called appropriately. This change will fix the change that you may have noticed. Once you have completed  the change, you will need to recompile the RTL and copy the new System.dcu into  your project directory. Your project will use the newly created System.dcu with the fix included. In System.pas, navigate down to this method @@skipTLSproc.


       { Call any DllProc }

       PUSH   ECX
       MOV    ECX,[ESP+8]//Changed from 4 to 8.
       TEST   ECX,ECX
       JE     @@noDllProc
       MOV    EAX,[EBP+12]
       MOV    EDX,[EBP+16]
       CALL   ECX