Try our conversational search powered by Generative AI!

Configuration Overview

Product version:

EPiServer CMS 6 R2

Document last saved:

Introduction

This document describes the structure of EPiServer CMS configuration - the different files used for storing configuration settings and the hierarchy within them.

 

Table of Contents

 

Configuration Hierarchy

Like all ASP.NET Web Applications EPiServer CMS stores configuration settings in a web.config file located in the root directory of the application. ASP.NET uses functionality called configuration inheritance, this means that the web.config in your project only contains changes and additions to the configuration found in the machine.config file which is the base configuration for all applications on your machine.

The web.config file is separated into smaller parts called sections. Each section contains settings for a specific part of the application, usually based on namespaces - e.g. the settings used by the classes in the System.Web namespace are stored within the <system.web> section in web.config. At the top of web.config you can find a list of section definitions, these definitions tells ASP.NET what sections are used by this application in addition to the sections inherited from machine.config. A definition also tells ASP.NET what class to use when creating an object representation of the section. Below is an example of a definition.

<section name="episerver.dataStore" type="EPiServer.Data.Configuration.EPiServerDataStoreSection, EPiServer.Data" />

 

Looking at the list of section definitions you can see that the EPiServer CMS API has several sections in which settings are stored. If you scroll further down in the web.config file you will find the actual instances of the sections where values are assigned to the section properties.

   <episerver.dataStore>
      <dataStore defaultProvider="EPiServerSQLServerDataStoreProvider">
         <providers>
            ...

 

Configuration Files

Much of EPiServer CMS's sections are stored normally within web.config but if you have a look at the <episerver>, <episerver.framework> and <connectionStrings> sections you will see that they differ from other sections. These three sections now exist in three separate configuration files - the name of the file used by a section can be found in the configSource attibute: 

<episerver configSource="episerver.config" />

 

The reason for relocating some sections to separate configuration files is that we want to avoid having a very large web.config file. Note that having a separate configuration files for some sections just the default setup for EPiServer CMS - there is no hard requirement for having separate files. As a result of this there are now more configuration files to keep track of. The basic configuration files containing the ASP.NET and EPiServer CMS API:s are as follows:

Name

Description

web.config

The main configuration file for the application. Contains configuration for the ASP.NET API and some parts of the EPiServer CMS API.

episerver.config

The main configuration file for the EPiServer CMS API. Contains the basic settings for the EPiServer CMS site (or sites - in an enterprise installation).

EPiServerFramework.config

Contains mapping information describing which host adresses leads to a particular EPiServer CMS site. See the episerverFramework.config section in this document.

connectionStrings.config

Contains a list of database connection strings. You have the option to define several different strings to connect to several different databases.

 

For detailed information about all settings in the different sections please see the following documents.

 

There are two further configuration files located in the application's root folder. These two configuration files are separate and not related to the files listed above or each other:

Name

Description

EPiServerLog.config

Contains the log4net settings for the application, please see the log4net homepage for full information on configuration options.

FileSummary.config

An XForm defining the meta data properties attached to files that are uploaded to EPiServer CMS

 

Programmatically Accessing Configuration Settings

EPiServer CMS settings can be accessed through the use of a configuration class. All settings are typed members of this class, which gives the benefit of being able to see all settings through IntelliSense. Access to the site settings goes through the static object EPiServer.Configuration.Settings.Instance. There is no need to instantiate this class since it's a global static available throughout all of the application.

To locate the settings for a specific site in web.config, scroll to the <episerver> section and find the <sites> element collection.

<episerver>
  <sites>
    <site siteId="MySite" description="Short description of the site">

Note: The <site> element contains a description attribute that makes it easier to locate a specific site in web.config. The siteId attribute is used to distinguish this site when communicating between EPiServer sites, for example in Enterprise scenarios.

Note: If you have a Single Server License there will be only one site and only one config section in your web.config file while an Enterprise solution will contain several sites.