ISAPI Filter Component FAQ
QUESTION:
My filter DLL fails to load in IIS. What might be wrong?
ANSWER:
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
QUESTION:
Why isn't DLLPROC being called?
ANSWER:
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.
@@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
|