404 pages when using Dispatcher | Community
Skip to main content
Level 2
October 16, 2015
Solved

404 pages when using Dispatcher

  • October 16, 2015
  • 11 replies
  • 9182 views

I have just finished configuring Dispatcher and have apparently made a configuration error that I can't see m to fin.  I have a server with Author, Publisher, and IIS installed on it, and I have configured Dispatcher to work with IIS (AEM 5.6.1, Dispatcher-iis-windows-x64-4.1.4).  I have activated teh Publish agent from my Author instance and that is working fine, I see page changes when made.   When I go to the Publisher URL (http://localhost:4505/content/geometrixx/en.html) I get the correct page view.  When I go to http://localhost/content/geometrixx/en.html I get a 404 error.  My dispatcher log shows the following:

[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Dispatcher initializing (build 4.1.4)
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] farms[website].homepage = /geometrixx/en.html
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] farms[website].cache.docroot = C:\inetpub\wwwroot
[Mon Feb 24 15:04:42 2014] [I] [3704(6024)] Dispatcher initialized (build 4.1.4)
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Found farm website for (my server IP address)
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] checking []
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] no cache due to missing extenson in uri:
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] cache-action for []: NONE
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] connected to render publish1 (localhost:4505)
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: host
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: accept-language
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: user-agent
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: dnt
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: accept
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: accept-encoding
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: APPL_MD_PATH
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: APPL_PHYSICAL_PATH
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: CONTENT_LENGTH
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: HTTPS
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: INSTANCE_ID
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: INSTANCE_META_PATH
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: REMOTE_ADDR
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: REMOTE_HOST
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: REQUEST_METHOD
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: SCRIPT_NAME
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: SERVER_NAME
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: SERVER_PORT
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: SERVER_PORT_SECURE
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: SERVER_PROTOCOL
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: SERVER_SOFTWARE
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Spooling request header: URL
[Mon Feb 24 15:04:42 2014] [D] [3704(6024)] Content length: -1, written: 101
[Mon Feb 24 15:04:42 2014] [I] [3704(6024)] "GET " 404 ~ 0ms

 

At this point, I have stripped my dispatcher.any file down to the bare bones, trying to sort out the problem.  Here is the content of it:

# name of the dispatcher
/name "test"

# Each farm configures a set of load balanced renders (i.e. remote servers)
/farms
  {
  # First farm entry
  /website
    {
    
    /homepage "/geometrixx/en.html"
    /clientheaders
      { "*"  }
    /virtualhosts
      { "*"  }
    /renders
      {
      /publish1
        {
        /hostname "localhost"
        /port "4505"
        # /timeout "0"
        }
      }
            
    /filter
      {
          /0001  { /glob "*" /type "allow" }
      }

    /cache
      {
       /docroot "C:/inetpub/wwwroot"

       /rules
        {
        /0000
          {
          /glob "*"
          /type "allow"
          }
        }
    }
 
    /statistics
      {
      /categories
        {
        /html
          {
          /glob "*.html"
          }
        /others
          {
          /glob "*"
          }
        }
      }
    }
  }

 

I would appreciate any advice on where I've gone wrong on configuring this.

 

Diana W.

Best answer by joerghoh

Diana,

the dispatcher log shows that you are requesting /geometrixx/en.html, while on your direct access to publish you use /content/geometrixx/en.html; is this a typo? And can you lookup the request made to the dispatcher on yourpublish as well? Because the publish already returns the 404, the dispatcher just forwards this to your browser.

kind regards

Jörg

11 replies

September 4, 2025

Hey Diana,

That 404 usually means IIS isn’t passing the request to Dispatcher. Quick checks:

  1. URL Rewrite – Make sure /content/... requests are being forwarded to Dispatcher, not handled by IIS directly.

  2. Dispatcher DLL mapping – Confirm disp_iis.dll is registered and mapped correctly.

  3. Permissions – IIS + Dispatcher need access to C:\inetpub\wwwroot.

  4. Logs – Hit http://localhost/content/geometrixx/en.html via IIS and check Dispatcher logs to see if it even gets the request.

Alternative method: Instead of URL Rewrite, you can bind IIS to proxy all requests (e.g., via ARR reverse proxy) straight to AEM through Dispatcher — simpler for testing and avoids complex rewrite rules.

oklahomacourtrecords.site