Hosting configurations

Overview

Sitefinity CMS ASP.NET Core Renderer is a standalone application, which you can host separately from Sitefinity CMS.

PREREQUISITES: The hosting provider must support ASP.NET Core Framework.

The following scenarios for hosting Sitefinity ASP.NET Core Renderer application are supported:

  • Local
    In this scenario, both the Renderer and Sitefinity CMS applications run on the local user machine, but are hosted under different ports –  for example, localhost:1234 for Sitefinity CMS and localhost:5000 for the Renderer application.
    The setup of this scenario is described in the Setup procedure
  • Cloud
    In this scenario, both applications are be hosted in the cloud – for example as two separate services in Azure App Services.
  • Mixed (Development) 
    In this scenario, the Renderer application is hosted locally and points to a remote Sitefinity CMS instance – for example, hosted on Azure App Services.
    This way, the developer is enabled to work with the latest database from the live, staging, or development environment, and preview the changes.

Domains in your license file

  • For the mixed scenario you must have added the localhost domain to your Sitefinity license
  • For the cloud scenario you must have added all the domains of the live Renderer website to your Sitefinity license

RECOMMENDATION: We strongly recommend not hooking a local Renderer to a live Sitefinity CMS instance. Because any changes to the live environment will not be applied to the local development environment, thus, breaking the Continuous delivery process and causing malfunction to any live Renderer.

Setup the Renderer

Applicable to: Cloud and Mixed scenario, Azure App Services and Amazon EC2

For both cloud and mixed hosting, you need to first setup the renderer application in the following way:

  1. Create the ASP.NET Core web application.
  2. Install the NuGet packages.
  3. Configure the .NET Core Renderer.
  4. Host the renderer on Azure App Services or Amazon EC2.

Configure Sitefinity CMS

Applicable to: Cloud and Mixed scenario, Azure App Services and Amazon EC2

The following procedure describes how to configure Sitefinity CMS for the cloud and the mixed hosting scenarios for both Azure App Services and Amazon EC2.

After creating and configuring your ASP.NET Core application, you have to configure your Sitefinity CMS. Perform the following:

  1. In Sitefinity CMS backend, navigate to Administration » Web services.
  2. Open the Default web service.
  3. Under Who can access the content by this service?, select Everyone.
  4. Save your changes.
  5. Navigate to Administration » Settings » Advanced.
  6. In tree on the left, expand Authentication » SecurityTokenService » IdentityServer » Clients » sitefinity.
  7. Click RedirectUris » Create new.
  8. In the input field, enter http://<YourRendererAppDomain>/signin-oidc
  9. Click Save and click Create new again.
  10. In the input field, enter https://<YourRendererAppDomain>/signin-oidc
  11. Perform Steps 7 to Step 10 for every domain that the you want to access your live application on. 
    For example, for every live domain of your multisite instance.
    This step is applicable for the cloud scenario, when your renderer is hosted in the cloud.
  12. Save your changes.
  13. If the domain that Sitefinity CMS is hosted on is not part of the license, perform the following:
    1. In the treeview, click SecurityTokenService » IdentityServer.
    2. In Identity server host header valid value input field, enter the live domain of Sitefinity CMS.
    3. Save your changes.

Configure the Renderer for Azure App Services

Applicable to: Cloud and Mixed scenario, Azure App Services only

If your project is hosted on Azure App Services, you need to make some specific settings, so that your Renderer application can communicate with Sitefinity CMS.

You need to make a transformation in your applicationHost.config file and changes to the appSettings.json file of your Renderer application. 

In addition to the above procedure, perform the following:

  1. Login to the Azure Portal and open your app service.
  2. Navigate to Kudu » Debug console » CMD.
  3. Inside d:\home\site directory create a new file and name it applicationHost.xdt
  4. Inside the file paste the following:
  5. Save and close the applicationHost.xdt file.
    This will set the allowed server variables for the IIS by transforming the applicationHost.config file.
  6. If you are using a domain for Sitefinity CMS other than the default azure domain, specified as yoursite.azurewebsites.net, open the appSettings.json file of the Renderer application and set the HostHeaderName settings to equal X-Original-Host by adding the following:

Configure Sitefinity CMS for Azure App Services

Applicable to: Cloud and Mixed scenario, Azure App Services only

If your project is hosted on Azure App Services, you need to make some specific settings, so that your Sitefinity CMS can communicate with the Renderer application.

In addition to the above procedures, perform the following:

  1. Open the web.config file of your Sitefinity CMS.
  2. Inside the <system.webServer> config element, add the following rewrite rule:
  3. Save and close the web.config file.

Https considerations

There are four scenarios in which the two applications can be configured, but only three of them are supported. The only scenario which is not supported is when the Renderer is under HTTP and Sitefinity CMS under HTTPS, which leads to a downgrade in the protocol. The other three are supported:

ASP.NET Core Renderer Sitefinity CMS Supported
HTTP HTTP Yes
HTTPS HTTPS Yes
HTTPS HTTP Yes
HTTP HTTPS No

For more information, see Enforce HTTPS in ASP.NET Core in Microsoft documentation.

Want to learn more?

Sign up for our free beginner training. Boost your credentials through advanced courses and certification.
Register for Sitefinity training and certification.

Was this article helpful?

Next article

Configure output cache