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:
- Create the ASP.NET Core web application.
- Install the NuGet packages.
- Configure the .NET Core Renderer.
- 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:
- In Sitefinity CMS backend, navigate to Administration » Web services.
- Open the Default web service.
- Under Who can access the content by this service?, select Everyone.
- Save your changes.
- Navigate to Administration » Settings » Advanced.
- In tree on the left, expand Authentication » SecurityTokenService » IdentityServer » Clients » sitefinity.
- Click RedirectUris » Create new.
- In the input field, enter http://<YourRendererAppDomain>/signin-oidc
- Click Save and click Create new again.
- In the input field, enter https://<YourRendererAppDomain>/signin-oidc
- 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.
- Save your changes.
- If the domain that Sitefinity CMS is hosted on is not part of the license, perform the following:
- In the treeview, click SecurityTokenService » IdentityServer.
- In Identity server host header valid value input field, enter the live domain of Sitefinity CMS.
- 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 changes to the appSettings.json
file of your Renderer application.
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:
- Set up a 64-bit process in the App Service paltform configuration.
To do this, perform the following:
- In the Azure portal, click your service.
- Under Settings, click Configuration.
- Click General settings.
- In Platform dropdown box, select 64 Bit.
- Rewrite the X-Original-Host header sent from the Renderer to Host header.
To do this, install an additional extension from the Kudu console in the following way:
- In the Azure portal, click your service.
- In the sidebar, under Development tools section, click Advanced Tools » Go.
- In the Kudo console, expand the Site extensions.
- Search for the Application Gateway Host Rewrite Module and follow the installation instructions.
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.