November Happy Hour will be moved to Thursday December 5th.

Configuring EPiServer CMS 5 Enterprise

Product version:

EPiServer CMS 5 SP2

Document version:

1.1

Document last saved:

27-02-2009

Introduction

EPiServer CMS 5 Enterprise is a solution that shares the same file structure and can store different types of information on the Web site in the same database. This tech note describes the configuration and the technology behind EPiServer CMS 5 Enterprise.

Table of Contents

Information

EPiServer CMS 5 Enterprise is intended for environments that have several similar Web sites set up that want to share information. It is possible to link information from one Web site to another and edit every Web site in Edit mode.

License Requirements

To enable Enterprise functions, an EPiServer CMS 5 Enterprise license is required. There are two different types of licenses:

  1. Single Enterprise License - All Web sites that have purchased a single Enterprise license must run on one server.
    NOTE: A valid single license must be purchased before running the "master" Enterprise license.
  2. Enterprise CMS 5 Enterprise License - With the purchase of an EPiServer CMS 5 Enterprise license you can request up to three load-balancing licenses. Each Web site running a "master" Enterprise license can be deployed on up to three additional load-balancing servers.
    NOTE: The load-balancing licenses are only valid for sites running on a "master" enterprise license.

Supported Enterprise Scenarios

Multiple Stand-Alone Sites

The Enterprise license can be used to run a number of different Web sites on the same server without sharing information between the sites, for example, the Enterprise license is used to purchase multiple EPiServer CMS 5 licenses. This does not require extra administration and will not be mentioned in this document.

Sharing Information Between Web Sites

This is the actual Enterprise configuration. Its purpose is to allow files and information to be shared between Web sites. This means that the Web sites will share the same database and set of files. In the Internet Information Server each site's home directory will be mapped to the same directory on the local hard drive.

New Scenarios Supported in EPiServer CMS 5 SP2

EPiServer CMS 5 SP2 also has support for the following scenarios:

  1. Multiple EPiServer CMS installations under a single IIS site, i.e. in their own virtual directories.
  2. Serveral IIS sites may use the same web.config <site> section. This is especially useful when building globalized Web sites, where you use the <siteHosts> section to map a host name to a default language. If you have several IIS sites, they must use the same start page ID, since the sites are configured identically.

Configuration Restrictions

This configuration has the following restrictions:

  • The sites must be installed on the same computer. Running sites on a different computer is regarded as load-balancing from an EPiServer CMS 5 Enterprise standpoint. See load balancing configuration for more details.
  • The sites must use the same start page template file (default.aspx in the site's root folder). This limitation can be overcome by overriding the method GetDefaultDocuments in your global.asax.cs file. See documentation for EPiServer.SiteBase.GetDefaultDocuments for more details.
  • Each EPiServer CMS 5 Enterprise site that uses its own <site> section must have a unique Start page ID. See New Scenarios Supported in EPiServer CMS 5 SP2.
  • Each EPiServer CMS 5 Enterprise site must use the same Wastebasket page ID and Root page ID.

Installation

To install EPiServer CMS 5 Enterprise a few extra steps need to be performed when compared to the EPiServer Professional installation.

Install the First Enterprise Web Site

This is a regular EPiServer CMS 5 installation using an Enterprise license file.  For installation instructions, see the technical note "EPiServer CMS 5 Installation Instructions".

Install Multiple Enterprise Web Sites

To set up multiple Web sites follow the instructions below:

  1. Create a new Web site in Internet Information Services Manager (IIS Manager).
  2. Configure the home directory to point to the same home directory as your first Enterprise Web site.

  3. In the Properties dialog box, go to the Home Directory tab and click Configuration… .

    Windows Server 2000


    Click Add to add a new mapping to a wildcard that points to the aspnet_isapi.dll file (the path to this file can be copied from the .aspx extension map). Do not select the "Verify that the file exists" check box.



    Windows Server 2003

    Click Insert... to add a new mapping to a wildcard that points to the aspnet_isapi.dll file (the path to this file can be copied from the .aspx extension mapping). Do not select the "Verify that the file exists" check box.


  4. NOTE: As from EPiServer CMS 5 SP2, the applicationID attribute of the <site> section is no longer used. It has been replaced with a siteId attribute that is simply an abstract unique name. This siteId is used wherever siteShortName was previously used.

    Make a new site section in the <sites> block of your site's Web.config file. To distinguish between the sites, you must supply a siteId attribute for each site. See the following example of a site's section with two sites.  

    <site siteId="ExampleSite1" description="Example Site 1">
      <siteSettings
      enableEvents="true"
      enableRemoteEvents="true"
      pageStartId="3"
      siteUrl=http://enterprise1/
      uiUrl=http://enterprise1/yourUI/
      utilUrl=http://enterprise1/Util/
      pageWastebasketId="2"
      pageRootId="1"
      categoryId="1"
      siteDisplayName="Example Site 1" />
    </site>

    <site siteId="ExampleSite2" description="Example Site 2">
      <siteSettings
      enableEvents="true"
      enableRemoteEvents="true"
      pageStartId="0"
      siteUrl=http://enterprise2/
      uiUrl=http://enterprise2/yourUI/
      utilUrl=http://enterprise2/Util/
      pageWastebasketId="2"
      pageRootId="1"
      categoryId="1"
      siteDisplayName="Example Site 2" />
    </site>

    Add a <siteHosts> section in each <site> section. This is used to determine which <site> section to use based on the host name of the incoming request.
    NOTE: One site must have a name="*". This is used to indicate the default site which will receive requests not mapped to any other host names. Also a host name may only appear once.

    The <siteHosts> section is also used to control default language mapping for a host. See the EPiServer CMS Globalization tech note for more information on language mapping.

  5. <site siteId="EampleSite1" description="Example Site 1">
      <siteHosts> 
        <add name="www.company.com" />
        <add name="www.company.net" />
      </siteHosts>
      <siteSettings  ... />
    </site> 
    <site siteId="ExampleSite2" description="Example Site 2">
      <siteHosts> 
        <add name="*" />
      </siteHosts>
      <siteSettings  ... />
    </site>
  6. Open the start page on the new Web site and you will see the Install Basic Content page. Templates can be installed on the new Web site. There are two options:

    • If you want to create a start page and do not want to install any content, log into Edit Mode, create the start page, get the ID number from the start page and enter it into the web.config file for pageStartId.
    • Import the content and system language that you want to start with for your new site and click Finish.

     

Configuration

Start Page Setup

If you want to use a different page template for the start page of a new Enterprise Web site, this is not supported through configuration. It can be addressed by overriding the method GetDefaultDocuments in your global.asax.cs file. You need to return a different set of default documents based on the current settings section. 

Technical Details

web.config

The unique site configuration information for each site will be stored in a section in the web.config file under <Sites>. For example, the site running under IIS instance 1 could have a section similar to the one below:

<episerver>
  <sites>
    <site 
        siteId="ExampleSite" 
        description="Example Site">
        <siteSettings 
          enableEvents="true"
          enableRemoteEvents="true"
          siteUrl="http://enterprise/" 
          uiUrl="http://enterprise/yourui/"
          utilUrl="http://enterprise/Util/" 
          siteDisplayName="Enterprise Site
          pageFolderVirtualPathProvider="EPiServerPageVPP"
          uiTheme=""
          pageWastebasketId="2"
          pageOfficeStartId="0"
          uiMaxVersions="0"
          uiVersionMerging="true"
          pageValidateTemplate="false"
          uiKeepUserLoggedOn="true"
          ...=""
          />
    </site>
  </sites>
</episerver>

NOTE: Each Web site specifies all of it’s parameters independently of others. 

Local and Remote Cache Update

A feature that the Enterprise edition has introduced is intelligent cache updates. From a .NET viewpoint, all your enterprise Web sites are completely separate applications, running in their own appDomains. Since all sites share the same database and may be affected by page updates on other sites, the system needs to be able to update page information between all the enterprise Web sites.

As from EPiServer CMS 5 SP2, the cache update between sites, regardless of whether they are running on the same machine or not, is done via UDP network traffic. The only configuration that is needed is to make sure that enableEvents and enableRemoteEvents are both set to true as per the examples above.

When a site starts, it registers its siteId in the database (if it's not already there). It then reads all siteId's back from the database and registers an interest in receiving cache notifications for each one.

If the cache update mechanism does not appear to work, the cause is most likely that you have network devices between your servers that prevent UDP broadcasts from being relayed. Software-based firewalls (i.e. the Windows Firewall) may also need to be configured to allow the UDP traffic to reach the machine.

Additional Information

Security

A possible misconception regarding authentication in Enterprise solutions is that logging out on one site while being logged in on other sites would log you out from these Web sites as well. This is not the case. When logging out from an Enterprise site, for example, to leave the computer, make sure to log out from other Web sites.