The Sitefinity CMS Health check service helps you assess the vital functions of your Sitefinity CMS site. Out of the box the Health check service covers the following system components:
For more information about the out of the box Health check types, see Overview: Health check service
If you have developed custom modules for your Sitefinity CMS website you can also benefit from the Health check service and integrate custom Health checks in your module code. This way you extend the scope of the Health check service and can use it as a centralized mechanism for verifying the vital functions of core Sitefinity CMS functionality, as well as your custom module components.
The Health check API enables you to implement custom health checks and cover your specific use cases. To create a custom health check, you must add a new class to your solution and inherit from HealthCheckBase. HealthCheckBase requires you to implement the RunCore method, which is where you place your health check logic. RunCore is an async method, thus you must return a Task in your logic.
For example, here’s how you can implement a custom health check, which verifies whether your Sitefinity CMS website can successfully connect to a configured LDAP membership provider:
To register the custom Health check in your custom module, you must instruct Sitefinity CMS to look for the configuration types inside the custom module configuration class. Inside the module configuration class you must add a new configuration property that will hold the collection of health checks for this module, implement the IHealthCheckConfig interface, and finally populate the collection of Health checks for this module.
To demonstrate this concept let’s go ahead and register the custom LdapConnectionCheck, shown in the previous paragraph, in a custom module.
First you must modify your module class and override the GetConfigTypes method. Inside the overridden GetConfigTypes return the type of your module configuration class:
Next you must modify your module configuration class. Start by adding a new ConfigurationProperty in your custom module configuration class, named HealthChecks. This property will hold a dictionary of the Health checks you want to run for the module. Sitefinity CMS reads this configuration property and executes any registered Health checks for this module. The property must be of type ConfigElementDictionary<string, CheckConfigElement>, and you need to mark it with the ConfigurationProperty and ObjectInfo attributes. For the ConfigurationProperty attribute value you must specify the configuration property name – “healthChecks”. The ObjectInfo attribute controls how this property will be displayed in the Sitefintiy CMS Advanced settings UI. Specify the type to be ConfigDescriptions and write the Title and the Description of this configuration property, which will appear in the UI.
Next, inherit from the IHealthCheckConfig interface. This interface requires you to implement the HealthCheckConfigElements member in your custom module configuration class. Inside the HealthCheckConfigElements implementation return the Values of the HealthChecks property you added on the previous step.
Finally, you need to override the OnPropertiesInitialized method of your custom module configuration class and add the desired Health checks to the HealthChecks property. Health checks are added to the HealthChecks collection as objects of type CheckConfigElement, and you must specify the Name, Enabled, and Type properties.
The following sample demonstrates the implementation of the above described logic in a blank module configuration class:
As a result, when you request the Health Check service endpoint you’ve configured for your Sitefinity CMS website, you should see the custom health check execution result in the collection of Health Checks:
For more information about setting up the Health check service endpoint, see Set up the Health check service.
Back To Top
Copyright © 2019 Progress Software Corporation and/or its subsidiaries or affiliates.
All Rights Reserved.