Try our conversational search powered by Generative AI!

Configuring Live Monitor for Multiple Bindings

Live Monitor utilizes WCF service. Due to WCF services behavior additional configuration may be required on sites with multiple bindings. There are number of cases that should be considered.

Running one site with multiple bindings on .NET 3.5

If you are using multiple site bindings (for example http://mysite.com and http://www.mysite.com) on your site following specific configuration is required.

Changing TraceService.svc

Add Factory parameter to the service declaration in the file [%Program files folder%]\EPiServer\CMS\[Exact version number]\Install\Modules\[CMO version number]\CMO\Trace\Services\TraceService.svc:

<%@ ServiceHost Service="EPiServer.Cmo.Cms.Trace.Services.CmoTraceService" 
    Debug="true" 
    Factory="EPiServer.Cmo.Cms.Trace.Services.CmoTraceServiceFactory " %>

Changing web.config

Find the following section under configuration/system.serviceModel/Services:

<service behaviorConfiguration="EPiServer.Trace.Services.TraceServiceBehavior" 
         name="EPiServer.Cmo.Cms.Trace.Services.CmoTraceService">
  <endpoint address="" binding="basicHttpBinding" contract="EPiServer.Trace.Services.ITraceService" />
  <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>

 And change the file as follows:

<service behaviorConfiguration="EPiServer.Trace.Services.TraceServiceBehavior" 
         name="EPiServer.Cmo.Cms.Trace.Services.CmoTraceService">

  <endpoint address="http://<site_name_1>/<CMO-UI-Alias>/Trace/services/TraceService.svc" 
            binding="basicHttpBinding" 
            contract="EPiServer.Trace.Services.ITraceService" />

  <endpoint address="http://<site_name_2>/<CMO-UI-Alias>/Trace/services/TraceService.svc" 
            binding="basicHttpBinding" 
            contract="EPiServer.Trace.Services.ITraceService" />

  ...
</service>

Basically you need to specify basicHttpBinding endpoint tag for each of site addresses. Remove mexHttpBinding endpoint from this list.

Also add httpGetUrl parameter to the <behavior name="EPiServer.Trace.Services.TraceServiceBehavior"> section under the section configuration/system.serviceModel/behaviors:

<behavior name="EPiServer.Trace.Services.TraceServiceBehavior">
  <serviceMetadata httpGetEnabled="true" httpGetUrl="http://<site_name>/CMO-UI-Alias/Trace/services/TraceService.svc"  />
  <serviceDebug includeExceptionDetailInFaults="false" />
</behavior>

Running EPiServer Enterprise solution on .NET 3.5

You can find more information about EPiServer CMS Enterprise in this document. In this case several web sites share the same file structure.

No additional configuration required if each web site has only one binding. For example you have 2 web sites mysite.com and customerzone.mysite.com.

In most cases some sites in Enterprise setup have more than one binding per each site. For example, you have one site with 2 bindings (mysite.com and www.mysite.com) and another web site with one binding (customerzone.mysite.com) targeted on the same home directory.

In this case you have to select one site where CMO Live Monitor should be available. Most likely that site has multiple bindings and you need to perform additional configuration as it is described in section for one site with multiple bindings.

Running sites on .NET 4

If your site is running on ASP.NET 4 or later you can enable multiple site bindings by setting attribute multipleSiteBindingsEnabled="true" of serviceHostingEnvironment section. This configuration setting is a requirement if you want to run CMO Live Monitor on multiple sites in an EPiServer Enterprise setup with multiple bindings.

<configuration>
  <system.serviceModel>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" .../>
  </system.serviceModel>
</configuration>