Error GetProcAddress on ISAPI filter "C:\open\www\open.dll" failed  [Answered]RSS

12 replies

Last post Nov 09, 2011 03:54 AM by huynd

  • Error GetProcAddress on ISAPI filter "C:\open\www\open.dll" failed

    Jul 24, 2007 03:13 PM|spbrooks|LINK

     I run a large ISAPI web site (compiled with Delphi 2005) on IIS6 and Windows Server 2003.  I'm setting up a new development laptop with Vista Ultimate and IIS7 (my first experience with Vista or IIS7).  I've set up the website in IIS7, I've added the ISAPI filter entry for c:\open\www\open.dll, accessing http:\\localhost\open.dll\welcome though gives me the following error:  HTTP Error 500.0 - Internal Server ErrorDescription: Calling GetProcAddress on ISAPI filter "C:\open\www\open.dll" failed Error Code: 0x8007007f Notification: Unknown Module: IIS Web Core Requested URL: http://localhost:80/open.dll/welcome Physical Path: c:\open\www\open.dll\welcome Logon User: Not yet determined Logon Method: Not yet determined Handler: StaticFile Most likely causes:
    • The ISAPI Filter has dependencies that are not available on the Web server.
    • 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.
    • IIS was not able to access the web.config file for the Web site or application. This can occur if the NTFS permissions are set incorrectly.
    • IIS was not able to process configuration for the Web site or application.
    • The authenticated user does not have permission to use this DLL.
    What you can try:
    • Try running Reskit tool "depends" on the ISAPI DLL.
    • Ensure that the NTFS permissions for the web.config file are correct and allow access to the Web server's machine account.
    • Check the event logs to see if any additional information was logged.
    • Verify the permissions for the DLL.
    • Create a tracing rule to track failed requests for this HTTP status code. For more information about creating a tracing rule for failed requests, click here.
    More Information... This error means that there was a problem while processing the request. The request was received by the Web server, but during processing a fatal error occurred, causing the 500 error. Microsoft Knowledge Base Articles:
    • 294807
    I’ve compiled our source with Delphi 2007 and it compiles cleanly (for the IIS6/W2003 environment we use Delphi 2005).  Running depends on the open.dll it does mention that a lot of the modules have an unresolved import due to a missing export function in a delay-load dependent module. but I think this is just because a lot of the functions are resolved at run time and not resolved at link time. Any ideas or suggestions would be great, I’m new to this environment unfortunately.  Thanks !

     

  • Re: Error GetProcAddress on ISAPI filter "C:\open\www\open.dll" failed

    Jul 24, 2007 11:46 PM|mvolo|LINK

    spbrooks,

    My gut feel is that your DLL is not an ISAPI filter (runs for all requests, does some service-type processing), but is rather an ISAPI extension (serves responses for particular urls). 

    If so, you have mistakengly configured it as a filter, and we are failing to GetProcAddress on one of the ISAPI filter exported entrypoints. 

    To fix it:
    1) Keep the entry in the IsapiCgiExtensions list (the new web service extension restriction list)
    2) Remove the DLL from the filters list
    3) Install ISAPI extension support from the Windows Setup

    Let me know how it goes.

    Thanks,


    Mike Volodarsky

    Program Manager
    IIS Core Server
    Visit mvolo.com for more inside information on IIS7, IIS and ASP.NET

    Mike Volodarsky
    CTO at LeanSentry
    Former IIS/ASP.NET PM

  • Re: Error GetProcAddress on ISAPI filter "C:\open\www\open.dll" failed

    Jul 25, 2007 12:36 AM|spbrooks|LINK

    Thanks Mike, you are right, checking our production IIS6 settings we do define open.dll as an allowed web service extension (seeing IIS7 for the first time yesterday the ISAPI filter icon jumped out at me.  I've removed the ISAPI filter entry, and have checked and I do have ISAPI extensions installed.  I'm not sure, though the IIS7 UI, how to add the web service extension restriction list and searching on IsapiCgiExtensions isn't much good.

     Clicking on Handler Mappings it has:

    ISAPI-dll        *.dll        Disabled      File            IsapiModule

     and clicking on it and then clicking on Request Restrictions.... it has the options: File, Folder, File or Folder but this doesn't look like where I specify c:\open\dll

    I did some googling and it looks like I should add some xml somewhere, but I can't find the article any more.

     Thank you for your response, this obviously is the answer, please let me know how in IIS7 I should add c:\open\www\open.dll as an allowed web service extension (in IIS6 it was obviously but I can't seem to find it in IIS7).  THANKS !!

  • Re: Error GetProcAddress on ISAPI filter "C:\open\www\open.dll" failed

    Jul 25, 2007 04:33 PM|mvolo|LINK

    To add the ISAPI extension restriction entry, you should be able to use the "ISAPI and CGI Restrictions" icon in the admin tool.  Be sure that you are connected at the machine level (doubleclick the machine node) and not the site or any other level - the restrictions can only be set globally.

    Alternatively, you can the do (From elevated command prompt):

    > %windir%\system32\inetsrv\appcmd.exe set config -section:isapiCgiRestriction /+[path='c:\open\www\open.dll',allowed='true']

    Thanks,


    Mike Volodarsky

    Program Manager
    IIS Core Server
    Visit mvolo.com for more inside information on IIS7, IIS and ASP.NET

    Mike Volodarsky
    CTO at LeanSentry
    Former IIS/ASP.NET PM

  • Re: Error GetProcAddress on ISAPI filter "C:\open\www\open.dll" failed

    Jul 25, 2007 05:08 PM|spbrooks|LINK

    Thanks Mike,

     I've added the ISAPI restriction entry for c:\open\www\open.dll accessing http:\\localhost\open.dll\welcome (site is mapped to c:\open\www) I get:

     Description: The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

    Error Code: 0x80070002

    Notification: MapRequestHandler

    Module: IIS Web Core

    Requested URL: http://localhost:80/open.dll/welcome

    Physical Path: c:\open\www\open.dll\welcome

    Logon User: Anonymous

    Logon Method: Anonymous

    Handler: StaticFile

    Most likely causes:

    • The directory or file specified does not exist on the Web server.
    • The URL contains a typographical error.
    • A custom filter or module, such as URLScan, restricts access to the file.

    open.dll does exist and I do have all the dynamic IIS stuff installed, I'm running as an administrator so I don't think it's security related, the Handler: StaticFile above almost implies that it's looking for the static file open.dll\welcome, is there anything additional that I need to do to tell it that it's a dynamic site?

     Thanks so much for your help so far, I'm in a bit over my head :-) 

  • Re: Error GetProcAddress on ISAPI filter "C:\open\www\open.dll" failed

    Jul 25, 2007 05:51 PM|spbrooks|LINK

    Hi Mike,

     As per my last post I get a 404, just looking around more I'm assuming that the 404 is because I haven't defined an application entry for the site.  I' tried adding an application entry for c:\open\www, virtual path /open but accessing http://localhost/open/open.dll/welcome is still getting a 404.

     Obviously getting very close, any further advice would be great.  Thanks Soooo much !! 

  • Re: Error GetProcAddress on ISAPI filter "C:\open\www\open.dll" failed

    Jul 25, 2007 06:08 PM|mvolo|LINK

    No need to create an application.

    Grant the url of the Execute access for hander mappings.  You can do it with (From elevated command prompt):

    > %windir%\system32\inetsrv\appcmd.exe set config "Default Web Site/open/open.dll" "/commit:Default Web Site/open" /section:handlers /accessPolicy:Read,Script,Execute

    Then, also make sure you have an ISAPI module mapping for *.dll at that path.  You can do it as follows:

    > %windir%\system32\inetsrv\appcmd.exe list config "Default Web Site/open" /section:handlers | findstr /i *.dll

    You should see something like:

        <add name="ISAPI-dll" path="*.dll" verb="*" modules="IsapiModule" resourceType="File" requireAccess="Execute" allowPathInfo="true" />

    Let me know if this works for you.


    Thanks,

    Mike

    Mike Volodarsky
    CTO at LeanSentry
    Former IIS/ASP.NET PM

  • Re: Error GetProcAddress on ISAPI filter "C:\open\www\open.dll" failed

    Jul 25, 2007 06:35 PM|spbrooks|LINK

    Executing the first command I get:

    ERROR ( message:configuration error

    Filename \\?\c:\windows\system32\inetsrv\config\applicationHost.config

    Line Number: 0

    Description: Cannot read configuration file

    Trying to cd to config I get an access is denied even though I'm in the administrators group, it's a new laptop with Vista Ultimate with a userid which logs on automatically.  Is there some privilege that I need to give user?

     Thanks Mike !!!

  • Re: Error GetProcAddress on ISAPI filter "C:\open\www\open.dll" failed

    Jul 26, 2007 02:06 AM|mvolo|LINK

    You gotta run this from an elevated command line prompt (Start>Programs>CMD, right click, select run as Administrator).

    Thanks,

    Mike

    Mike Volodarsky
    CTO at LeanSentry
    Former IIS/ASP.NET PM

  • Re: Error GetProcAddress on ISAPI filter "C:\open\www\open.dll" failed

    Jun 15, 2010 02:58 PM|balassy|LINK

    We faced with the same issue, but with the aspnet_isapi.dll on Windows 7, IIS 7 and ASP.NET 4.0.

    Solution (worked for in our environment at least): open the ISAPI Filters module in IIS Manager and remove the aspnet_isapi.dll from the list. The aspnet_isapi.dll is an ISAPI extension and not an ISAPI filter.

    Hope this helps for you too,
    - György

    error isapi

  • Re: Error GetProcAddress on ISAPI filter "C:\open\www\open.dll" failed

    Nov 02, 2011 11:06 PM|huynd|LINK

    I got this issue when I try to install a simple example ISAPI Filter into the IIS 7.5 win 2008 I have started with C++ for two weeks. Though this discussion I know that my sample I try to install is not a filter. My question is: How can I make a simple filter in Visual studio 2010 ? I can not find any guide to do it (for visual studio 2010) Thank you very much. Huy
  • Re: Error GetProcAddress on ISAPI filter "C:\open\www\open.dll" failed

    Nov 03, 2011 01:00 AM|HCamper|LINK

    Hi @ huy,

    If your waiting on a reply and answer to your questions try this instead:

    Have you looked at IIS Net Library http://learn.iis.net/page.aspx/107/runtime-extensibility/ ?

    For C++ Developement start with  http://learn.iis.net/page.aspx/169/develop-a-native-cc-module-for-iis/ and

    get the module kit along with Mike's working Sample for Visual Studio 2010 Professional.

    If you read Mike's IIS Server Development Series and use the working sample it will be easier

            to create your project and code.

     Did you Search (Google or Bing) MSDN library Keywords Using IIS Web Developement

     http://msdn.microsoft.com/en-us/library/ms525321(v=VS.90).aspx ?

    Question: You just started with C++ for two weeks is this project for Work School or ?

    Martin

     

     

    Windows and Linux work Together IT-Pros
    Community Member Award 2011
  • Re: Error GetProcAddress on ISAPI filter "C:\open\www\open.dll" failed

    Nov 09, 2011 03:54 AM|huynd|LINK

    Thanks Martin very much,
    I already to check these artices. I also updated the input stream request as sample.
    but in the runtime, it though the w3p exception. after some days I figure out that, it is my mistake to use strcpy_s method.
    I should use strcpy_s((char*) pvNewContent, newstring.length+1, newstring) instead of strcpy_s((char*) pvNewContent, newstring.length, newstring)
    I don't know why!
    But now I can modify the input stream with other string which have difference length.

    Again, thank you very much.
    Ngo Duc Huy