Expand my Community achievements bar.

SOLVED

404 pages when using Dispatcher

Avatar

Level 2

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.

1 Accepted Solution

Avatar

Correct answer by
Employee Advisor

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

View solution in original post

32 Replies

Avatar

Level 1

Hey again @basitsh Rhythmreceipts
Thank you for the clear explanation! I'll double-check the /hostname Directive to ensure alignment with our main web address in IIS. Appreciate your guidance!

Avatar

Level 2

Hi @marcussick Cell Phone Chargers
Happy to help! Feel free to reach out if you have any further questions or need assistance. I'm here to support you. Just drop me a message anytime! 

Avatar

Level 1

Hi @basitsh eHallPassInsider
Absolutely! Your expertise is invaluable. I'll be sure to keep you in mind for any future advice or assistance needed. Thank you once again for your help!

Avatar

Level 1

Looking to streamline your business operations with cutting-edge technology? Look no further than our Certified Microsoft Dynamics 365 Partner services. With unparalleled expertise and a proven track record, we specialize in implementing Dynamics 365 solutions tailored to your specific needs. Whether you're seeking seamless CRM integration, efficient ERP solutions, or robust business analytics, our team of certified professionals is dedicated to delivering excellence every step of the way. Trust in our knowledge, experience, and commitment to elevate your business to new heights with Microsoft Dynamics 365.

Avatar

Level 1

Streamline targeted campaigns and oversee marketing operations efficiently using Microsoft Dynamics 365 Marketing. Empower businesses to seamlessly distribute relevant content across various channels instantly.

Avatar

Level 1

To address the 404 error you're experiencing, let's fine-tune your Dispatcher configuration with these specific changes:

Virtual Hosts Configuration:

Your existing virtual host setup is broadly configured to accept all hosts, as indicated by "*". It's essential to ensure that this aligns with your IIS configuration. If your IIS is set to handle requests for a specific virtual host only, you need to adjust this section to match the exact virtual hostname(s) you are using.

Homepage Configuration:

It appears your homepage configuration, noted as "/homepage", is generally correct. However, make sure this configuration accurately reflects your AEM site's path structure. For instance, if your homepage actually resides at "/content/geometrixx/en.html" on your Publisher instance, you should update this setting accordingly.

Filter Configuration:

Your current filter setup ("/filter") allows all requests to pass through. While this may be suitable for general testing, it's important to tailor this configuration to your specific needs for enhanced security and performance. If no special filtering rules are necessary for your environment, it may already suffice for preliminary testing.

Cache Configuration:

The cache configuration you've noted ("/cache") seems straightforward and functional. Ensure the specified docroot path is correct and that the Dispatcher can access this path without any problems.

Render Configuration:

In the "/renders" section, verify that the details match those of your AEM Publisher setup exactly. The specified port (4503) must be accurate and should be free from any network or firewall restrictions that could hinder communication.

Dispatcher Log Review:

Since the logs show a 404 error, it's important to compare the URL you are requesting with the actual structure and setup of your AEM site, paying special attention to the properly configured homepage.

Once you've made these detailed checks and adjustments, try accessing the URL again and monitor the Dispatcher logs for any changes or new insights. If problems persist, delve into both the IIS and AEM logs to uncover more detailed information about the cause of the 404 error.

 

Avatar

Level 1

To address the 404 error you're experiencing, let's fine-tune your Dispatcher configuration with these specific changes:

Virtual Hosts Configuration:

Your existing virtual host setup is broadly configured to accept all hosts, as indicated by "*". It's essential to ensure that this aligns with your IIS configuration. If your IIS is set to handle requests for a specific virtual host only, you need to adjust this section to match the exact virtual hostname(s) you are using.

Homepage Configuration:

It appears your homepage configuration, noted as "/homepage", is generally correct. However, make sure this configuration accurately reflects your AEM site's path structure. For instance, if your homepage actually resides at "/content/geometrixx/en.html" on your Publisher instance, you should update this setting accordingly.

Filter Configuration:

Your current filter setup ("/filter") allows all requests to pass through. While this may be suitable for general testing, it's important to tailor this configuration to your specific needs for enhanced security and performance. If no special filtering rules are necessary for your environment, it may already suffice for preliminary testing.

Cache Configuration:

The cache configuration you've noted ("/cache") seems straightforward and functional. Ensure the specified docroot path is correct and that the Dispatcher can access this path without any problems.

Render Configuration:

In the "/renders" section, verify that the details match those of your AEM Publisher setup exactly. The specified port (4503) must be accurate and should be free from any network or firewall restrictions that could hinder communication.

Dispatcher Log Review:

Since the logs show a 404 error, it's important to compare the URL you are requesting with the actual structure and setup of your AEM site, paying special attention to the properly configured homepage.

Once you've made these detailed checks and adjustments, try accessing the URL again and monitor the Dispatcher logs for any changes or new insights. If problems persist, delve into both the IIS and AEM logs to uncover more detailed information about the cause of the 404 error.

Avatar

Level 1

Encountering a 404 error can be frustrating, but with a systematic approach, you can refine your Dispatcher configuration to resolve this issue. Here’s a detailed guide to help you troubleshoot and make targeted adjustments.

Step 1: Review Virtual Hosts Configuration

Your current virtual host setup, indicated by *, is configured to handle requests for any virtual host. This setup is broad and should work universally. However, it's essential to verify this against your IIS configuration. If your IIS is set up to serve specific virtual hosts, you need to update this section in the Dispatcher configuration to match the exact virtual hostname(s) used in your IIS setup.

Step 2: Verify Homepage Configuration

The homepage configuration in your setup, noted as /homepage, should accurately reflect the path structure of your AEM site. Ensure that this path aligns with the actual location of your homepage on the Publisher instance. For instance, if your homepage is located at /content/geometrixx/en. html, update the configuration accordingly. This alignment ensures that the Dispatcher directs requests correctly.

Step 3: Adjust Filter Configuration

The current filter setup (filter) is quite open, allowing all requests. This configuration is useful for broad testing scenarios but should be tailored for security and efficiency in a production environment. Create specific filtering rules that suit your application's needs. If no specific rules are required at this stage, the current open configuration may be sufficient for initial testing.

Step 4: Confirm Cache Configuration

Check the cache configuration (cache). Ensure that the docroot path specified is correct and accessible by the Dispatcher. Verify that there are no permission issues preventing the Dispatcher from writing to or reading from the cache directory. An accurate cache configuration enhances performance and reduces the load on your AEM Publisher.

Step 5: Validate Render Configuration

Inspect the render configuration under /renders. Confirm that the settings here match your AEM Publisher’s configuration precisely. The port number (typically 4503) must be correct, and there should be no network or firewall restrictions blocking communication between the Dispatcher and the AEM Publisher.

Step 6: Analyze Dispatcher Logs

Since the logs indicate a 404 error, cross-reference the requested URL with your AEM site’s actual structure and configuration. Ensure that the requested paths are correctly mapped and that the homepage is properly configured. The Dispatcher logs provide valuable insights into what might be causing the 404 errors.

Step 7: Cross-Check IIS and AEM Logs

If issues persist after making these adjustments, review both your IIS and AEM logs for more detailed information. These logs can provide deeper insights into misconfigurations or other issues that might be causing the 404 error.

Summary

By following these steps, you can systematically troubleshoot and refine your Dispatcher configuration:

  • Virtual Hosts Configuration: Ensure alignment with IIS setup.
  • Homepage Configuration: Verify the path structure.
  • Filter Configuration: Adjust for security and efficiency.
  • Cache Configuration: Confirm the correct docroot path.
  • Render Configuration: Match the Publisher's settings.
  • Dispatcher Log Review: Analyze logs for clues.
  • Cross-Check IIS and AEM Logs: Investigate further details.

After implementing these checks and adjustments, retry accessing the URL and monitor the Dispatcher logs for any changes. Persisting issues should prompt a detailed review of both IIS and AEM logs to uncover the root cause of the 404 error. With these steps, you'll be well on your way to resolving the issue and optimizing your Dispatcher setup.

https://homeworkifyai.org/

Avatar

Level 1

Your Dispatcher configuration appears mostly correct, but a minor issue might be causing the 404 error. Ensure the virtual host setting (/virtualhosts { "*" }) matches your IIS setup, replacing * with the actual host name if necessary. Verify that the homepage path (/homepage "/geometrixx/en.html") aligns with your AEM site structure, adjusting it to /content/geometrixx/en.html if needed. The filter configuration (/filter { /0001 { /glob "*" /type "allow" } }) allows all requests, which is fine for testing. Check that the cache (/cache { /docroot "C:/inetpub/wwwroot" /rules { /0000 { /glob "*" /type "allow" } } }) has the correct and accessible docroot path, and confirm the render configuration (/renders { /publish1 { /hostname "localhost" /port "4505" } }) matches your AEM Publisher setup. Review Dispatcher, IIS, and AEM logs for additional insights if the problem persists.

https://imiocado.site/

Avatar

Level 1

To troubleshoot the 404 error you're encountering, let's refine your Dispatcher configuration with these targeted adjustments:

Virtual Hosts Configuration

Your current virtual host setup is universal, indicated by *, meaning it's prepared to handle requests for any virtual host. Double-check this against your IIS setup. If your IIS is specifically configured to serve a particular virtual host, you must update this section to reflect the exact virtual hostname(s) you use.

Homepage Configuration

Your approach for the homepage configuration, noted as /homepage, seems to be on the right track. Ensure this setting truly mirrors the path structure of your AEM site. For example, if your actual homepage resides at /content/geometrixx/en.html within your Publisher instance, update this configuration to match accordingly.

Filter Configuration

The current filter setup (/filter) is open, allowing all requests. This configuration might be fine for broad testing scenarios but should be adjusted for security and efficiency to fit your specific needs. If no specific filtering rules are required for your setup, it might already be appropriate for initial tests.

Cache Configuration

The specified cache configuration (/cache) looks like a basic yet effective setup. Confirm that the docroot path provided is accurate and that the Dispatcher can access it without issues.

Render Configuration

For the /renders section, confirm that the details here precisely align with your AEM Publisher's configuration. The port mentioned (4503) must be correct and should not have any network or firewall restrictions impeding communication.

Dispatcher Log Review

Given that the log indicates a 404 error, cross-reference the URL you're requesting with your AEM site's actual structure and configuration, including the correctly configured homepage.

After implementing these focused checks and adjustments, attempt to access the URL again while monitoring the Dispatcher logs for any new information or shifts in behavior. If issues persist, review both IIS and AEM logs to uncover more detailed clues about the source of the 404 error.

https://www-njmcdirects.com/

Avatar

Level 1

 

The issue you are encountering seems to be related to the configuration of your Dispatcher, specifically how it is handling requests and the document root setup. Here are several steps and checks to help you resolve this issue:

1. Verify IIS Configuration

Ensure that the IIS is properly configured to serve content through the Dispatcher module. This involves:

  • Confirming that the Dispatcher module is correctly installed and registered in IIS.
  • Ensuring that the IIS site is configured to point to the Dispatcher module.

2. Verify Dispatcher Module Path

Check that the Dispatcher module is correctly referenced in the IIS configuration. This is typically done in the web.config or applicationHost.config files for IIS.

3. Document Root (/docroot)

The docroot specified in the dispatcher.any file should match the root directory where IIS serves the content. Your current configuration specifies C:/inetpub/wwwroot. Ensure that this is indeed the directory where IIS is set up to serve content from.

4. Logging and Debugging

Your dispatcher log indicates that the Dispatcher is initializing correctly but returns a 404 error for the requested URL. To gain more insight, enable detailed logging by adding more verbose settings in the dispatcher.any file:

 

ini
Copy code
/loglevel 3 /logfile "C:/path/to/dispatcher/log/dispatcher.log"

 

 

5. Review Dispatcher Any Configuration

Let's break down your dispatcher.any configuration and verify each section:

  • Filters: You've allowed all requests with glob "*" /type "allow". This should be fine for debugging purposes, but you may want to tighten this up later.

  • Virtual Hosts: Ensure that IIS is set to handle requests for localhost and that your virtual hosts configuration matches what IIS expects.

  • Cache: Confirm that the docroot is accessible and correct. Also, ensure that caching rules are as intended.

Here is an example of how your dispatcher.any might look:

 

ini
Copy code
# name of the dispatcher /name "test" # Each farm configures a set of load-balanced renders (i.e., remote servers) /farms { /website { /homepage "/geometrixx/en.html" /clientheaders { "*" } /virtualhosts { "*" } /renders { /publish1 { /hostname "localhost" /port "4505" } } /filter { /0001 { /glob "*" /type "allow" } } /cache { /docroot "C:/inetpub/wwwroot" /rules { /0000 { /glob "*" /type "allow" } } } /statistics { /categories { /html { /glob "*.html" } /others { /glob "*" } } } } } /loglevel 3 /logfile "C:/path/to/dispatcher/log/dispatcher.log"

 

 

6. Dispatcher Cache Directory Permissions

Ensure that the user under which IIS is running has the necessary permissions to read and write to the C:/inetpub/wwwroot directory.

7. Content and Paths

Confirm that the content you are trying to access (/content/geometrixx/en.html) exists on the Publisher instance and is accessible directly via the Dispatcher.

8. Dispatcher Module in IIS

Make sure the Dispatcher module is correctly set up to intercept requests. This involves configuring the web.config to load the Dispatcher module for incoming requests.

Troubleshooting Steps:

  1. Check IIS Logs: Review the IIS logs to see if there are any additional details about the 404 error.
  2. Direct Access Test: Try accessing http://localhost:4505/content/geometrixx/en.html directly to ensure the Publisher instance is serving the content correctly.
  3. Permissions: Verify that the C:/inetpub/wwwroot directory has the right permissions for the IIS process to read/write.

Example Web.Config for Dispatcher:

Ensure that your web.config for the IIS site includes the Dispatcher module setup:

 

xml
Copy code
<configuration> <system.webServer> <modules> <add name="Dispatcher" image="C:/path/to/dispatcher/module/disp_iis.dll" /> </modules> <handlers> <add name="Dispatcher" path="*" verb="*" modules="Dispatcher" resourceType="Unspecified" /> </handlers> </system.webServer> </configuration>
 

Conclusion

After performing these checks and adjustments, restart IIS to apply the changes. If the issue persists, review the logs for any clues, and consider incrementally enabling and testing parts of the configuration to isolate the problem.

If you still encounter issues, providing more detailed logs and specific configurations can help further diagnose the problem.

Avatar

Level 1

 

Certainly! Here are the steps in short:

1. Verify IIS Configuration

  • Confirm Dispatcher Module Installation: Check in IIS Management Console.
  • Ensure IIS Site Configuration: Point to the Dispatcher module.

2. Verify Dispatcher Module Path

  • Check web.config:

 

xml
Copy code
<configuration> <system.webServer> <modules> <add name="Dispatcher" image="C:/path/to/dispatcher/module/disp_iis.dll" /> </modules> <handlers> <add name="Dispatcher" path="*" verb="*" modules="Dispatcher" resourceType="Unspecified" /> </handlers> </system.webServer> </configuration>

 

 

3. Document Root (/docroot)

  • Ensure docroot in dispatcher.any matches IIS content directory (e.g., C:/inetpub/wwwroot).

4. Logging and Debugging

  • Enable detailed logging in dispatcher.any:

 

ini
Copy code
/loglevel 3 /logfile "C:/path/to/dispatcher/log/dispatcher.log"

 

 

5. Review dispatcher.any Configuration

  • Filters:

 

ini
Copy code
/filter { /0001 { /glob "*" /type "allow" } }

 

 
  • Virtual Hosts:

 

ini
Copy code
/virtualhosts { "*" }

 

 
  • Cache:

 

ini
Copy code
/cache { /docroot "C:/inetpub/wwwroot" /rules { /0000 { /glob "*" /type "allow" } } }
 

6. Dispatcher Cache Directory Permissions

  • Ensure IIS user has read/write permissions for C:/inetpub/wwwroot.

7. Content and Paths

  • Verify content exists at /content/geometrixx/en.html on Publisher.

8. Troubleshooting Steps

Conclusion

Restart IIS after making these changes. If the issue persists, review logs for more details and adjust configuration accordingly. https://www.ncedcloud.run/