Expand my Community achievements bar.

Guidelines for the Responsible Use of Generative AI in the Experience Cloud Community.
SOLVED

Dispatcher configuration problem - Calling GetProcAddress on ISAPI filter "C:\\inetpub\\Scripts\\disp_iis.dll" failed

Avatar

Level 2

I have spent the past week trying to sort out a problem with a new configuration of a Dispatcher installation.  It is running on IIS 7.0, on a stand-alone server in our Development tier, so it has full access to our single Author and Publisher servers.  I have gone through the Configuration page (http://dev.day.com/docs/en/cq/current/deploying/dispatcher/disp_config.html) and the Troubleshooting page (http://helpx.adobe.com/experience-manager/using/dispatcher-faq.html)  several times.  I have verified that my IIS server has the dispatcher files (the newest ones for 64 bit server) installed in c:\inetpub\Scripts and that they have been edited following the instructions (the dispatcher.any and disp_iis.ini files).  The modules have been registered in ISAPI Filters, Handler Mappings, and Configuration editor, and the json mime type has been added.  I have triple checked everything.  I have even built a temporary server with the Author, Publisher, and IIS server all on one, just to make sure it wasn't an external firewall issue.  On the temporary server, I am running the Geometrixx demo site and I can see the pages just fine in the Author mode (http://localhost:4502/content/geometrixx.html) and Publish mode.  But when I try to pull it up on Webserver mode  (http://localhost/content/geometrixx.html), I get the following error:

Calling GetProcAddress on ISAPI filter "C:\inetpub\Scripts\disp_iis.dll" failed

Detailed Error Information
                 
ModuleIIS Web Core
NotificationUnknown
HandlerCQ
Error Code0x8007007f
                 
Requested URLhttp://localhost:80/content/geometrixx/en.html
Physical PathC:\inetpub\wwwroot\content\geometrixx\en.html
Logon MethodNot yet determined
Logon User

Not yet determined

The only post I see about this refers to registering the disp_iss.dll file, which I have done - and I checked again to make sure.

The only difference I can see is that the documentation talks about a disp_iss.pdb file but that wasn't in the downloaded .zip file (nor in the SSL or x86 versions either).  Is that old documentation, or do I need to get that file from somewhere?  Or is there another issue at the root of this?  I am pulling my hair out, and I have a deadline for a demo site this week.  Any help would be appreciated.

 

Diana W.

1 Accepted Solution

Avatar

Correct answer by
Level 10

From error seems like disp_iis.dll is included in the ISAPI Filters (Will file a documentation bug). Please remove it.  Below is a step-by-step instruction how to configure IIS with dispatcher 4.1.0 or higher posting from my notes. If below steps does not help file an daycare & will help you out through webex. 

  1. Create a Scripts directory under c:\inetpub\Scripts
  2. Copy the dips_iis.* and dispatcher.any files from the dispatcher zip file.
  3. Open c:\inetpub\Scripts\dispatcher.any and provide the host/IP and the port of your CQ instance. 
  4. Open c:\inetpub\Scripts\disp_iis.ini and change the logFile to  c:\inetpub\Scripts\dispatcher.log
  5. The following two steps are optional. You can perform these steps now so that you give full access and then you can change them back as needed:
    1. In windows explorer, go to the c:\inetpub and open the (properties dialog -> security tab -> Edit) and add “Everyone” with full control 
    2. Open c:\inetpub\Scripts\dispatcher.any and in the filters section allow all access. So change /0000 from deny to allow. You can delete the other blocks in filters for now. Do the same for the invalidate block
  6. Open IIS manager and click the Default Web Site or your custom site.
  7. DO NOT include the disp_iis.dll in the ISAPI Filters. You do not have to do this for dispatcher 4.1.0 or higher anymore.
  8. Double-Click Handler Mappings and click the Add Script Map… (top/right corner). Add the following: (Request path: *) (Executable: add the path to disp_iis.dll) (Name: CQ) and click OK
  9. Click back on the site. And Double-Click Configuration Editor. 
  10. For Section dropdown list select system.webServer/handlers. For From select the Site. 
  11. Click the Count= field and select the … button
  12. Select CQ and change requireAccess to None. Close and click the Apply button (top/right corner).
  13. Right-click the site and select Add Virtual Directory … 
  14. For Alias type Scripts and for the path type the path to the Scripts directory (c:\inetpub\Scripts)
  15. Restart IIS.
  16. Open the browser and hit http://localhost (if you are using the browser on the same machine where the dispatcher is)

View solution in original post

5 Replies

Avatar

Level 10

Hi Diana,

From your description I have all the info  but which dispatcher version you are using is missing.   The error "Calling GetProcAddress on ISAPI filter C:\inetpub\Scripts\disp_iis.dll" is given due to an invalid ISAPI filter. Since the dispatcher version 4.1.0, the dispatcher module is no more an ISAPI filter, it is an ISAPI extension and should be used accordingly.  

You can follow the steps given below to configure Dispatcher 4.1.0 or higher

  •     Open IIS Manager and navigate to the site you want to manage.
  •     In Features View, on the site Home page, double-click Handler Mappings.
  •     On the Handler Mappings page, in the Actions pane, click Add Wildcard Script Map.
  •     In the Executable box, type the full path or browse to the disp_iis.dll that processes the request.
  •     In the Name box, type a friendly name for the handler mapping, e.g. CQ.
  •     Click OK.
  •     After you add a wildcard script map, you must add the executable to the ISAPI and CGI restrictions list to enable it to run.

You can also refer to the release notes of the dispatcher.

Avatar

Level 2

The version is dispatcher-iis-windows-x64-4.1.4.zip.  It contained 5 files: author-dispatcher.any (which we are not using), disp_iis.dll, disp_iis.ini, dispatcher.any, and release-notes.txt.  I have them all in the Scripts folder under inetpub, and I have created a Virtual directory link under my website to the Scripts folder.

I have done the Handler Mappings, both with the instructions on the Configuring Dispatcher webpage and the Release-notes.txt file in the download - as a mapped and as a wildcard.  I have done it at the website level, then deleted that and did it at the webserver level, then deleted that and put it back at the website (the server has a single website - Default).  I have stopped and started the webserver service each time.  I have even rebooted the entire server.  The last thing I tried was installing the CGI option under Roles on the server, but that didn't help. 

 

The version of AEM we are running is 5.6.1 and it is all brand new installations on VMWare servers running Windows Server 2008r2, fully patched. 

Avatar

Correct answer by
Level 10

From error seems like disp_iis.dll is included in the ISAPI Filters (Will file a documentation bug). Please remove it.  Below is a step-by-step instruction how to configure IIS with dispatcher 4.1.0 or higher posting from my notes. If below steps does not help file an daycare & will help you out through webex. 

  1. Create a Scripts directory under c:\inetpub\Scripts
  2. Copy the dips_iis.* and dispatcher.any files from the dispatcher zip file.
  3. Open c:\inetpub\Scripts\dispatcher.any and provide the host/IP and the port of your CQ instance. 
  4. Open c:\inetpub\Scripts\disp_iis.ini and change the logFile to  c:\inetpub\Scripts\dispatcher.log
  5. The following two steps are optional. You can perform these steps now so that you give full access and then you can change them back as needed:
    1. In windows explorer, go to the c:\inetpub and open the (properties dialog -> security tab -> Edit) and add “Everyone” with full control 
    2. Open c:\inetpub\Scripts\dispatcher.any and in the filters section allow all access. So change /0000 from deny to allow. You can delete the other blocks in filters for now. Do the same for the invalidate block
  6. Open IIS manager and click the Default Web Site or your custom site.
  7. DO NOT include the disp_iis.dll in the ISAPI Filters. You do not have to do this for dispatcher 4.1.0 or higher anymore.
  8. Double-Click Handler Mappings and click the Add Script Map… (top/right corner). Add the following: (Request path: *) (Executable: add the path to disp_iis.dll) (Name: CQ) and click OK
  9. Click back on the site. And Double-Click Configuration Editor. 
  10. For Section dropdown list select system.webServer/handlers. For From select the Site. 
  11. Click the Count= field and select the … button
  12. Select CQ and change requireAccess to None. Close and click the Apply button (top/right corner).
  13. Right-click the site and select Add Virtual Directory … 
  14. For Alias type Scripts and for the path type the path to the Scripts directory (c:\inetpub\Scripts)
  15. Restart IIS.
  16. Open the browser and hit http://localhost (if you are using the browser on the same machine where the dispatcher is)

Avatar

Level 2

Thanks - that got rid of the error message.  (Now I am getting a webpage cannot be found, but that is probably a configuration error somewhere.)

 

Diana

Avatar

Level 10

Thanks for update & good to hear it helped.