Cache

Vote:
 

2 servers.

Server 1 is only to display the website and is SSO via Windows domain controller (We are not using everyone group. We have a special group in AD that we have givven the permissions in EPi to view the page but they need to login)
Edit and Admin is disabled in Web.config.

//////

Server 2 have Edit and Admin and SSO via Windows domain controller

Both servers are using the same DB and connectionstrings are identical

1. On Edit server update start page and click page modified checkbox.

2. View page on website

3. Check last modified metadata tag

Everything ok!

4. Go to the front server

5. Hard reload the page you just updated on edit server.

Result. Still show old page and not the updated page. Metatag show old date

What am i missing here?
IIS config? Web.config?

#175615
Feb 24, 2017 10:19
Vote:
 

Hi,

Sounds like you don't have events configured correctly.
http://world.episerver.com/documentation/Items/Developers-Guide/Episerver-CMS/75/Event-management/WCF-event-management/

/Mikael

#175628
Feb 24, 2017 16:16
Vote:
 

Mikael is right, it is probably an issue with the remote event setup that prevents the cache synchronization. I just wanted to add that the page modified checkbox has nothing to do with cache sync, cache is always synced on save/publish.

#175629
Feb 25, 2017 7:59
Vote:
 

Then please help me understand:

On Edit server (10.205.162.12) i have setup following:
<system.serviceModel>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" />

<services>
<service name="divi.cms/EPiServer.Events.Remote.EventReplication" behaviorConfiguration="DebugServiceBehaviour">
<endpoint
name="RemoteEventServiceEndPoint"
contract="EPiServer.Events.ServiceModel.IEventReplication"
bindingConfiguration="RemoteEventsBinding"
address="net.tcp://localhost:13101/RemoteEventService"
binding="netTcpBinding" />
</service>
</services>

<client>
<endpoint name="divi.cms.webshop-10.200.162.11"
address="net.tcp://10.200.162.11:13101/RemoteEventService"
bindingConfiguration="RemoteEventsBinding"
contract="EPiServer.Events.ServiceModel.IEventReplication"
binding="netTcpBinding"/>
</client>

<behaviors>
<serviceBehaviors>
<behavior name="DebugServiceBehaviour">
<serviceDebug includeExceptionDetailInFaults="true" />
<!--TODO: the option should be only in test environment true in the production should be false-->
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<netTcpBinding>
<binding name="RemoteEventsBinding">
<security mode="None" />
</binding>
</netTcpBinding>
<customBinding>
<binding name="RemoteEventsBinding">
<binaryMessageEncoding />
</binding>
</customBinding>
<basicHttpBinding>
<binding name="ETP">
<security mode="Transport" />
</binding>
<binding name="ETP1" />
</basicHttpBinding>
</bindings>
</system.serviceModel>

on Front (10.200.162.11) server:

<system.serviceModel>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" />
<services>
<service name="divi.cms/EPiServer.Events.Remote.EventReplication" behaviorConfiguration="DebugServiceBehaviour">
<endpoint
name="RemoteEventServiceEndPoint"
contract="EPiServer.Events.ServiceModel.IEventReplication"
bindingConfiguration="RemoteEventsBinding"
address="net.tcp://localhost:13101/RemoteEventService"
binding="netTcpBinding" />

</service>
</services>
<client>
<endpoint
name="divi.cms.backoffice-10.205.162.12"
address="net.tcp://10.205.162.12:13101/RemoteEventService"
bindingConfiguration="RemoteEventsBinding"
contract="EPiServer.Events.ServiceModel.IEventReplication"
binding="netTcpBinding" />

</client>
<behaviors>
<serviceBehaviors>
<behavior name="DebugServiceBehaviour">
<serviceDebug includeExceptionDetailInFaults="False" />
<!--TODO: the option should be only in test environment true in the production should be false-->
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<netTcpBinding>
<binding name="RemoteEventsBinding">
<security mode="None" />
</binding>
</netTcpBinding>
<customBinding>
<binding name="RemoteEventsBinding">
<binaryMessageEncoding />
</binding>
</customBinding>
<basicHttpBinding>
<binding name="ETP">
<security mode="Transport" />
</binding>
<binding name="ETP1" />
</basicHttpBinding>
</bindings>
</system.serviceModel>

#175676
Feb 27, 2017 11:01
Vote:
 

First of all you don't need the client configuration  on the front server since that one is only going to listen to the events from the admin server.
Second you should on the front end server change the service adress from localhost to the same as the client-adress you are calling from the admin server.

#175687
Feb 27, 2017 14:05