Get Started with Sitecore Publishing Service

The Sitecore Publishing Service is a module implemented by Sitecore to provide high-performance publishing in large scale Sitecore setups. While I am writing this post, there are already 2 releases available:

  1. Sitecore Publishing Service 2.0
  2. Sitecore Publishing Service 1.1

The module comes in 2 parts. The host service and the Sitecore package.

Publishing Host Service

The publishing host service runs independently from the Sitecore instance. It is responsible for processing the items that require publishing. You can easily setup the host on a dedicated server so that all the processing is done there.

Sitecore Publishing Service Module Package

This Sitecore package contains the UI and the different items that are required for the publishing dashboard to work and also to override the default publishing mechanism with the new one.

Configuring the Publishing Service

Before going into how to configure the Publishing Service, let us see how to setup the infrastructure.

Untitled Diagram.png

Basically, the above diagram is a simple one where:

  • Content Authors work on the Content Management Servers.
  • Items are retrieved and saved to the Source databases for them to be available for editing.
  • The processing server is where different jobs are executed so that it remove the processing from the Content Management Servers. It also updates the Target databases.
  • Visitors hit the Content Delivery servers which fetch the contents from the Target databases to serve the visitors.

So, to configure the Publishing Service, we need to setup the Host Service on the Processing Server and the Sitecore Module package on the Content Management Servers.

Prerequisite

core

You need to have .NET Core installed on the Processing Server. You can download the application here. Moreover, you will require the Windows Server Hosting to enable the service to be ran under IIS.

Configuring the Publishing Service Host

Download the Host Service from Sitecore official site. The link is provided above. There are 2 ways to configure the publishing Host. Manual installation or via Powershell.

Manual Installation

Extract the Sitecore Publishing Service inside the wwwroot directory. Example:

C:\inetpub\wwwroot\PublishingService

Once extracted, open the Internet Information Services (IIS) to setup the site. Follow the below steps to create and configure the host service:

  1. Right click on the Sites to add a new website.
  2. Fill in the different fields from the opened popup.

Untitlesd Diagram.png

Now, go to the Application Pools. Right click on your new created site app pool and select the Basic Settings to update the .NET CLR version to No Managed Code.

capture

Add in your host file the domain along with the respective IP address. Mine is as follows:

127.0.0.1    local.publishingservice.com

You need to update the connection strings of the Sitecore Instance you want to use. Example, I have a Sitecore instance name SitecoreExperimentalLab. So, I go to the website/App_Config folder and edit the ConnectionStrings.config by adding the attribute ‘MultipleActiveResultSets=True’ to the Core, Master and Web databases.

Core

connectionString=”user id={userId};password={Password};Data Source={Datasource};Database=SitecoreExperimentalLab_Core;MultipleActiveResultSets=True;

Master

connectionString=”user id={userId};password={Password};Data Source={Datasource};Database=SitecoreExperimentalLab_Master;MultipleActiveResultSets=True;

Web

connectionString=”user id={userId};password={Password};Data Source={Datasource};Database=SitecoreExperimentalLab_Web;MultipleActiveResultSets=True;

Once this is completed, you need to make the Host Service to access the database of the Sitecore Instance. Navigate to the path C:\inetpub\wwwroot\PublishingService\config\global and create a file name sc.connectionstring.xml and paste the following connections in it.

Note: Update the connection string accordingly.

The connection string will allow the Host service to gain access to the databases of the Sitecore Instance. When the schematool.exe has run, it will upgrade and also install the databases. Please see below steps to create and upgrade the databases:

  1. Open the Command Prompt with Admin rights.
  2. Navigate to the directory of the publishing host service. Example: cd C:\inetpub\wwwroot\PublishingService
  3. Run the command schematool upgrade to upgrade the databases schema.

To see if the Host Service has been installed and configured correctly, go to the following url http://{site url}/api/publishing/operations/status and you need to have a response of {“status”:0}

The configuration of the Host Service has completed. Install the Sitecore Publishing Service module on your Sitecore Instance. Once this is installed, from the Launchpad you will see the Publishing Icon. But before clicking on the Publishing Icon, you need to specify the link between the Host Service and the Publishing Module. To do so, create a new configuration file and name it z.PublishingService.config. In the config file, paste the setting for link as shown below:

Place the configuration file to the path ‘Website/App_Config/Include/‘. Reload your Sitecore Instance Backoffice and click on the publishing icon to navigate to the Publishing Dashboard.

Capture.PNG

If no errors are shown, then the module has been installed properly. This module will now override the default publishing manager.

Advertisements

2 thoughts on “Get Started with Sitecore Publishing Service

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s