As a Sitecore developer, you are likely intimately familiar with the /sitecore/admin/ShowConfig.aspx tool. It is the gold standard for debugging configuration patches, verifying setting overrides, and ensuring your Sitecore instance is behaving as expected. However, while accessing this on a Content Management (CM) server is straightforward, viewing the Sitecore Content Delivery configuration presents a unique challenge.

Because Content Delivery (CD) servers are typically hardened and lack the Sitecore Desktop or easy administrative access, you cannot always simply navigate to an admin page. Furthermore, because Sitecore uses role-based configuration, the compiled XML on your CM server will look significantly different than the one on your CD server.

In this guide, you will learn the most effective methods to view and verify your CD configuration, ranging from built-in administrative tools to support diagnostic packages.

1. Using the ShowConfigLayers Tool (Sitecore 9+)

If you are working on Sitecore 9.0 or later, Sitecore introduced a powerful administrative tool specifically designed to solve the multi-instance configuration visibility problem. Instead of trying to log into the CD server directly, you can generate the view from your CM instance.

Navigate to the following URL on your CM server:

https://<your-cm-hostname>/sitecore/admin/ShowConfigLayers.aspx

This tool provides a user interface where you can see how different layers (Sitecore, Modules, Custom, Environment) interact. Most importantly, it allows you to simulate different roles. By selecting the ContentDelivery role from the interface, Sitecore will process the configuration files based on the rules defined for that role, showing you exactly what the CD server's runtime configuration looks like.

2. The Role-Based Query String Parameter

For a quicker, text-based view without the full UI of the Layers tool, Sitecore provides a hidden gem in the standard ShowConfig.aspx page. You can pass a role parameter in the query string to force the CM server to render the configuration as if it were a different server type.

Use the following URL structure:

https://<your-cm-hostname>/sitecore/admin/showconfig.aspx?role=ContentDelivery

When you use this parameter, the Sitecore Configuration Factory processes all <patch:attribute> and <patch:instead> elements specifically for the ContentDelivery role. This is incredibly useful for verifying that your Sitecore.RoleDefine.config settings are correctly excluding or including specific patches on your production delivery nodes.

3. Extracting Config via the Sitecore Support Package

In some enterprise environments, your CM and CD servers might have different physical file systems or local patches that aren't perfectly synced. In these cases, simulating the role on the CM server might not be enough—you need to see the actual runtime files from the CD instance itself.

The Sitecore Support Package tool is the best way to collect this data remotely.

  1. Navigate to https://<your-cm-hostname>/sitecore/admin/supportpackage.
  2. Under the (2) Choose data to collect section, select D-03 Runtime configuration and files. You can deselect other options to keep the package size small.
  3. In the (3) Process section, ensure the specific CD instance you want to inspect is selected.
  4. Click Start.

Once the process completes, download the ZIP file. Inside, you will find a folder structure for each instance. Navigate to <instance_name>/configs/runtime/showconfig.xml to see the exact, compiled configuration that was live on that specific CD server at the time of collection.

4. Why Checking CD Configuration is Critical

Sitecore's rule-based configuration (introduced in Sitecore 9) relies heavily on the role:define and env:define settings in the web.config. It is common for developers to encounter a "Works on My Machine" bug where a custom index or a specific event handler works on the CM but fails on the CD.

Common reasons for configuration discrepancies include:

  • Missing Role Tags: A patch file might be missing the patch:instead or role:require="ContentDelivery" attribute.
  • Layering Issues: Files in App_Config/Include are loaded alphabetically. If a CD-specific patch is named in a way that it gets overridden by a generic patch later in the alphabet, the CD server will not behave as expected.
  • Environment Variables: If your CD server has an incorrect IIS_SITECORE_ROLE environment variable, it may be running CM configurations, leading to performance degradation or security risks.

Frequently Asked Questions

Can I access ShowConfig.aspx directly on the CD server URL?

In a production environment, this is usually blocked by Sitecore's hardening guide or a web application firewall (WAF). If you must access it directly, you would need to temporarily allow access to the /sitecore/admin folder in your web.config or via IIS IP restrictions, though using the CM-based tools mentioned above is significantly safer.

Does ShowConfig.aspx show changes made in the Sitecore Database?

No. ShowConfig.aspx only shows the compiled XML resulting from the .config files in your App_Config folder and the web.config. Settings stored in the Core or Master databases (like those changed in the Sitecore Desktop) are not reflected in this XML output.

Why does my CD config still show 'Master' database references?

This is a common configuration smell. If you see references to the master database in your CD showconfig.xml, it means your role-based configuration isn't correctly stripping out CM-specific settings. Use the ?role=ContentDelivery method to find which specific patch file is re-introducing the master database reference.

Wrapping Up

Verifying your Sitecore Content Delivery configuration doesn't have to be a guessing game. By utilizing ShowConfigLayers.aspx, the role query parameter, and the Support Package tool, you can gain full visibility into your CD environment's inner workings. Always ensure that your CD servers are properly hardened and that you are using these tools from the CM side whenever possible to maintain a secure production environment.