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

Configuration - Enterprise

Product version:

EPiServer CMS 6.0 / R2

Document last saved:

 

Introduction

EPiServer CMS 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 Enterprise.

Table of Contents

Information

This technote describes how to set up an EPiServer CMS Enterprise configuration where several separate web applications to share information by using the same files and database. When the Enterprise configuration is complete, it is possible to link information from one website to another and edit every website in edit mode.

Configuration Restrictions

This configuration has the following restrictions:

  • Each EPiServer CMS Enterprise site that uses its own <site> section must have a unique Start page ID.
  • Each EPiServer CMS Enterprise site must use the same Wastebasket page ID and Root page ID.

Installation

To install EPiServer CMS Enterprise a few extra steps need to be performed when compared to a non-Enterprise installation.

Install the First Enterprise Web Site

This is a regular EPiServer CMS installation using an Enterprise license file.

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.
    IIS 7:


    IIS 6:


  3. Configuring Wildcard Mapping
    Note:
    Usually when residing on IIS7, EPiServer CMS web sites are set to integrated pipeline mode - no steps will be required to achieve wild card mapping.

    Windows Server 2003 / IIS 6

    In the Properties dialog box, go to the Home Directory tab and click Configuration.
    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.



    Windows Server 2008 / IIS7

    In IIS 7 there two ways to achieve wild card mapping:

    IIS 7 integrated pipeline mode (instead of wildcard script mapping)

    In IIS integrated pipeline mode the ASP.NET functionality is fully integrated into the main request processing in IIS, which means that all ASP.NET features are already available for any type of requests


    IIS 7 classic pipeline mode 

    With classic pipeline mode the ASP.NET is plugged into the IIS request processing pipeline as an ISAPI extension - exactly the same way as it was in IIS 6. Open %WINDIR%\system32\inetsrv\config\applicationHost.config file and locate the <handlers> section.
    Configure wildcard mapping for the ASP.NET running in classic mode by adding one more handler mapping to the <handlers> section - before the handler mapping for static files (the order is important), see below:

    <handlers accessPolicy="Read, Script">
    ...
    <add name="ASP.NET-ISAPI-2.0-Wildcard"
     path="*" verb="GET,HEAD,POST,DEBUG"
     modules="IsapiModule"
     scriptProcessor="%windir%\Microsoft.NET\
     Framework\v2.0.50727\aspnet_isapi.dll"
     preCondition="classicMode,runtimeVersionv2.0,
     bitness32" responseBufferLimit="0" />
    <add name="StaticFile"...
    ...
    </handlers>

     

  4. Use the Site Information function available from the Config tab in admin mode to add additional site definitions to the Enterprise setup.
      
  5. Click the Add Site button and fill out the form, make sure to add at least one host name.

  6. Save the new site and go to the License Information tab and upload an Enterprise license for your new site to use.

  7. Click the Restart Sites button, this is required to make the changes take effect.

Technical Details

Configuration files

The unique site configuration information for each site will be stored in a section in the episerver.config file under <sites>. Each <site> element has a siteId value associated with it.

Note that the uiUrl attribute supports the application-relative syntax. The application-relative version of a uiUrl will allow you to access the UI (edit and admin) with any host name that you can use to access the site. If you enter a complete URL, you will be restricted to accessing the site via that specific host name and port.

The siteUrl attribute acts as a "default URL to the web site" in cases where you need to generate links to the web site without having a request to base the response upon, for example in subscription scenarios.

<episerver>
  <sites>
    <site siteId="enterprise1" ... >
      <siteSettings
        ...
        siteUrl="http://enterprise1/"
        uiUrl="~/MyUIFolder/CMS/"
        ...
      />
    <site siteId="enterprise2" ... >
      <siteSettings
        ...
        siteUrl=http://enterprise2/
        uiUrl="~/MyUIFolder/CMS/"
        ...
      />
    </site>
  </sites>
</episerver>

The siteId value is used to map each <site> element in episerver.config to a <siteHosts> element in EPiServerFramework.config.
 

<siteHostMapping>
  <siteHosts siteId="enterprise1">
    <add name="*" />
    <add name="enterprise1" />
  </siteHosts>
  <siteHosts siteId="enterprise2">
    <add name="enterprise2" />
  </siteHosts>
</siteHostMapping>

 
The <siteHostsMapping> element acts as a selector, determining the requests will be routed to a specific enterprise instance.

 

Local and Remote Cache Update

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.

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. 

CONFIGURATION