Utvecklingstips

EPiServer CMS 6 på flera servrar

I en miljö där EPiServer CMS 6 är lastbalanserad mellan två (eller flera) servrar så behöver Remote Events aktiveras för att ändringar som görs i administrationsgränssnittet på den ena servern direkt ska synas även på den andra servern.

Det gör du lätt genom att lägga till 3 inställningar i web.config på varje sajt. I exemplet nedan väljer vi att använda TCP för kommunikationen.

1. Aktivera Remote Events

I episerver.config aktiverar du Remote Events genom att i <siteSettings> under <site> sätta enableEvents och enableRemoteEvents till true.


2. Lokal endpoint

Du behöver en endpoint som exponerar servicen på befintlig server. Den läggs till under <services> i web.config. Värt att notera är att EPiServers Site Id  behöver finnas med i namnet (MySiteName) och att TCP default kör på port 808 men att du kan sätta vilket port du vill (så länge den är öppen i brandväggen mellan servrarna). Endpoint address är alltså adressen till RemoteEventService lokalt på den server sajten är installerad på.

<services>
      <!-- In order to get fault information from the server for debug purposes, add behaviorConfiguration="DebugServiceBehaviour" to the endpoint "RemoteEventServiceEndPoint" -->
      <service name="MySiteName/EPiServer.Events.Remote.EventReplication">
        <endpoint address="net.tcp://localhost:808/RemoteEventService"
                  binding="netTcpBinding" bindingConfiguration="RemoteEventsBinding"
                  name="RemoteEventServiceEndPoint"
                  contract="EPiServer.Events.ServiceModel.IEventReplication" />
      </service>
    </services>

EPiServer Site Id

EPiServer Site Id hittar du i episerver.config på <site>.


3. Remote endpoint

Under <client> i web.config läggs endpointen för den andra servern till. Här sätts endpoint address till namnet på den andra servern.

<endpoint name="RemoteEventServiceClientEndPoint"
                address="net.tcp://TheOtherServerName:809/RemoteEventService"
                binding="netTcpBinding" bindingConfiguration="RemoteEventsBinding"
                contract="EPiServer.Events.ServiceModel.IEventReplication" />

4. Inställningar för TCP bindings

Under <bindings> och <netTcpBinding> görs andra inställningar, t ex aktivering av port sharing (det kräver också att du startar servicen för port sharing på servern).

<netTcpBinding>
        <binding name="RemoteEventsBinding" portSharingEnabled="true">
          <security mode="None" />
        </binding>
      </netTcpBinding>

Och hur testar jag det här?

Förutom avsaknaden av gula fel så verifierar du Remote Events enklast genom att öppna en sida på server 1, öppna samma sida på server 2 och ändra något på den samt spara och att till sist uppdatera sidan på server 1 och se ändringen du gjorde.

 
Johanna Gustafsson

2011-08-10 kl. 10:38

Web Analytics