Configuring EPiServer CMS 5 Enterprise

Product version:

EPiServer CMS 5 Enterprise

Document version:

1.1

Document creation date:

27-06-2007

Document last saved:

11-09-2007

 

Introduction

EPiServer CMS 5 Enterprise is a solution that, among other things, shares the same files and stores all information in the same database. This technical note describes the configuration of, and the technology behind EPiServer CMS 5 Enterprise.

Table of Contents

Overview

EPiServer CMS 5 Enterprise is a solution that, among other things, shares the same files and stores all information in the same database. EPiServer CMS 5 Enterprise is mainly intended for environments where several similar Web sites are set up and want to have the possibility to share information. All Web sites can be edited from the same Edit mode and it is possible to link information between the different Web sites.

License Requirements

You need an EPiServer CMS 5 Enterprise license to enable the Enterprise functions. All sites for a single Enterprise license must run on a single server. With the purchase of an EPiServer CMS 5 Enterprise license you can also request up to three load-balancing licenses. Each site running on the "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 simply run a number of sites on the same server, without sharing information between the sites, i.e. the Enterprise license is used as a way to purchase multiple EPiServer CMS 5 licenses. This requres no special handling and will not be discussed further in this document.

Information Sharing Sites

This is the actual Enterprise configuration. Its purpose is to allow the sharing of information and files between multiple sites. This means that the sites will share the same database and also share the same set of files, i.e. in Internet Information Server each site's home directory will be mapped to the same directory on the local drive.

The following restrictions apply to this configuration:

  • Each EPiServer CMS 5 Enterprise site must be installed at the root level of its own IIS site. This means that setting up two sites as www.company.com/division1 and www.company.com/division2 is not supported.
  • 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 root). This limitation can be overcome with programming 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 must have a unique Start page ID.
  • Each EPiServer CMS 5 Enterprise site must use the same Wastebasket page ID and Root page ID.

Installation

To install EPiServer CMS 5 Enterprise you need to perform a few extra actions 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. See the technical note, "EPiServer CMS 5 Installation Instructions" for installation instructions.

Install Multiple Enterprise Web Sites

Follow the instructions below to set up multiple Web sites.

  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. Still within the Properties dialog, go to the Home Directory tab and click the Configuration… button.

    Windows Server 2000


    Click the Add button to add a new wildcard mapping that points to the aspnet_isapi.dll (the path to this file can be copied from the mapping of the .aspx extension). Make sure that Verify that file exists is not selected.


    Windows Server 2003

    Click the Insert... button to add a new wildcard mapping thet points to the aspnet_isapi.dll (the path to this file can be copied from the mapping of the .aspx extension). Make sure that Verify that file exists is not selected.


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

    <site applicationId="/LM/W3SVC/123/ROOT" description="Example Site 1">

      <siteSettings

        siteShortName="ExampleSite1"

          

    enableScheduler="true"

        enableEvents="true"

        enableRemoteEvents="true"

        eventSubscriberUrl="net.pipe://PublicContentMaster1/EventSubscriber"

        pageStartId="0"

        siteUrl="http://enterprise1/"

        uiUrl="http://enterprise1/yourUI/"

        utilUrl="http://enterprise1/Util/"

      ...="" />

    </site>

     

    <site applicationId="" description="Example Site 2">

      <siteSettings

        siteShortName="ExampleSite2"

        enableScheduler="true"

         

    enableEvents="true"

        enableRemoteEvents="true"

        eventSubscriberUrl="net.pipe://PublicContentMaster2/EventSubscriber"

        pageStartId="0"

        siteUrl="http://enterprise2/"

        uiUrl="http://enterprise2/yourUI/"

        utilUrl="http://enterprise2/Util/"

      ...="" />

    </site>


  5. Add a <siteHosts> section in each <site> section. It is used to determine which <site> section to use based on the host name of the incoming request. Note that 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 note that a host name may only appear once.

    Note! The current EPiServer CMS 5 release does not make use of the host names to determine the <site> section to use. It is currently the applicationId that controls this. The behavior will be changed for the next release and to avoid web.config schema changes we have decided to enforce the use of <siteHosts> from the start. 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.

    <site applicationId="/LM/W3SVC/123/ROOT" description="Example Site 1">

      <siteHosts>
     
        <
    add name="www.company.com" />

        <
    add name="www.company.net" />

      </
    siteHosts>

     
    <
    siteSettings  ... />

    </site>

     

    <site applicationId="" description="Example Site 2">

      <siteHosts>
     
        <
    add name="*" />

      </
    siteHosts>

     
    <
    siteSettings  ... />

    </site>


  6. Browsing to the second site will produce an error message, in this message you can see the applicationId of the site. Enter that ID in your web.config.
  7. In the <siteSettings> section, ensure the siteShortName attribute is unique for each site in the enterprise.
  8. In the <siteSettings> section, ensure the eventSubscriberUrl attribute is unique for each site in the enterprise. NOTE: the URL MUST start with "net.pipe://"
  9. In the <configuration> section ensure the <system.serviceModel> section is not commented out.
  10. In the <configuration><system.web><httpModules> section ensure the
     <add name="EventSubscriberHostModule" type="EPiServer.EventSubscriberHostModule, EPiServer" />
    element is not commented out.
  11. Open the start page on the new Web site and you will see the Install basic content page.
  12. Import the content and system language that you want to start with for your new site and click Complete installation.
     

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 thru configuration. It can be addressed by overriding the method GetDefaultDocuments in your global.asax.cs file. You would then 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 web.config under <Sites>. For example, the site running under IIS instance 1 could have a section like the following:

<episerver>

  <sites>

    <site

        applicationId="/LM/W3SVC/1097029768/Root"

        description="Example Site">

        <siteSettings

          siteShortName="ExampleSite"

          siteUrl="http://enterprise2/"

          uiUrl="http://enterprise2/yourui/"

          utilUrl="http://enterprise2/Util/"

          siteDisplayName="Enterprise2"

          uploadDir="~/upload/"

          pageFolderVirtualPathProvider="EPiServerPageVPP"

          uiTheme=""

          pageWastebasketId="2"

          pageOfficeStartId="0"

          uiMaxVersions="0"

          uiVersionMerging="true"

          pageValidateTemplate="false"

          uiKeepUserLoggedOn="true"

          ...=""

          />

    </site>

  </sites>

</episerver>

 

Note that each site specifies all it’s parameters independently of all others.

Load Balancing

If you are running in a load-balanced scenario, you need to make sure that the load-balanced sites receive the same application ID and site short name (applicationID and siteShortName attributes as shown above) as the master Web site. If you are running Windows Server 2003, the easiest way to accomplish this is to use the Save Configuration to a File menu option in IIS Manager from the master site, and then create the slave site with the function New > Web Site (from file).


 
If you are running Windows 2000, you may need to use MetaEdit or a similar tool. MetaEdit can be downloaded from www.microsoft.com.

Local Cache Update

A feature that the Enterprise edition has introduced is intelligent local 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 therefore 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.

Prior to EPiServer 4.40, you needed to configure remote web sites in EPiServer to let these Web sites update cache information between sites. This process is still needed if you need to communicate with Web sites running on another server, but for local updates, the new local cache update feature takes care of this without requiring any further configuration.

This update process is handled by EPiServer Scheduler Service. The main purpose of this service is to handle jobs that are scheduled to run at a specific time without manual intervention. Now it is also used to notify sites of cache updates.

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

If the cache update mechanism does not appear to work, the cause is most likely that the EPiServer Scheduler Service is not started or that the enableEvents or enableRemoteEvents attributes are set to false in the web.config in one or more of the sites.

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 those as well. This is not the case. When logging out from an Enterprise site to, for example, leave the computer, make sure to log out from any other sites as well.