Five New Optimizely Certifications are Here! Validate your expertise and advance your career with our latest certification exams. Click here to find out more
Five New Optimizely Certifications are Here! Validate your expertise and advance your career with our latest certification exams. Click here to find out more
This document contains functional and technical information for the EPiServer Events System in EPiServer CMS. The system provides a mechanism for distributing events within an EPiServer CMS site, between EPiServer CMS sites on the same physical server (enterprise), and between EPiServer CMS sites on separate servers (load-balanced standard and enterprise).
The system is based on Microsoft Windows Communication Foundation technology as this provides for object-oriented interface definitions and configurable interprocess communication methods, without the need to change code.
The EPiServer.Events.Clients.Event class is the public API of the EPiServer CMS Events System. It allows for the sending and receiving of site events in a de-coupled manner. The Events System does not have any predefined events when EPiServer CMS starts. It is up to the code that wants to send and receive events to register them using the Event.GetEvent static method. The GetEvent method accepts a GUID event Id and will create a new Event object instance if one has not already been created for the event ID, otherwise it will return the existing one. It is important to note that the GUID event ID is only important to users of the Events System in that it allows different pieces of code to identify the same event. The Events System has no knowledge of what these events are or who uses them.
The Event class has the following .NET events that user code can subscribe to:
This section describes the logical setup and execution of the events systems.
The EPiServer event system is used to distribute events with an EPiServer CMS site and between sites in an enterprise and/or load balanced scenario. The EPiServer Events System configuration consists of two parts: Subscriber and publisher. An EPiserver Server can be both subscriber and publisher.
The Subscriber works as a WCF Server, therefore configure it as WCF Service. To configure the EPiServer Event System Subscriber make the following checks/adjustment to the EPiServer CMS web.config file:
<system.serviceModel>
...
<services>
<service name="EPiServer.Events.Remote.EventReplication"
behaviorConfiguration="*">
<endpoint name="RemoteEventServiceEndPoint"
contract="EPiServer.Events.ServiceModel.IEventReplication"
binding="*"RemoteEventsBinding" address="*" />
</service>
</services>
...
</system.serviceModel>
<system.serviceModel>
...
<client>
<endpoint name="*" address="*" binding="*" bindingConfiguration="*"
contract="EPiServer.Events.ServiceModel.IEventReplication" />
</client>
</system.serviceModel>
In the default web.config you will see an example of UDP configuration of the EPiServer Event System configuration.
Examples of EPiServer CMS functionality that use the Events System are:
To test page cache events, edit a page on one EPiServer CMS site and ensure the change is reflected (with 2/3 seconds) on the 2nd load balanced EPiServer CMS site. See below for exact details:
To test permanent link map store events, create or edit a link on a page on one EPiServer CMS site and ensure the change is reflected (with 2/3 seconds) on the 2nd load balanced EPiServer CMS site. See below for exact details:
Last updated: Mar 25, 2013