Troubleshooting SiteSync
Following the officially documented approaches for supported SiteSync module usage scenarios, configuration, and synchronization of data ensures that the module runs smoothly on your Sitefinity CMS website, and you will be able to promote content. However, SiteSync depends heavily on multiple components, including your Sitefinity CMS source and destination website configuration, data and its structure, network connectivity between the environments, and so on. Due to multiple factors involved, if something goes wrong with one of them, this might prevent SiteSync from operating optimally. If you experience any issues with promoting content between your environments via SiteSync, below is a list of some key elements you should check in the troubleshooting process:
Use Test connection to validate whether SiteSync can communicate with the destination environment
For SiteSync to promote content, the module first needs to establish a successful web service communication with the destination environment. The first step in troubleshooting SiteSync module issues should be to use the Test connection functionality, available on the screen where you select which data to promote to the destination environment. To validate successful connection between the two environments, follow these steps click on the Test connection(s) button. If you are not using Multisite, you can select the desired destination environment (if you have more than one configured) from the dropdown on this screen.
The Test connection functionality performs a sanity check of the SiteSync module connectivity with the configured destination environments. A successful Test connection check verifies that the sync operation can be executed. It covers the following elements
- Communication - whether the configured destination server is accessible (response status code 200 (OK))
- State of the SiteSync module - whether the SiteSync module is installed and its pages are accessible on the destination environment
- Dedicated SiteSync user – whether the source environment can successfully log in with the configured user for the destination environment, and whether that user is not already logged in
- Sitefinity CMS versions match – whether the Sitefinity CMS version of the destination environment is the same as the one on source
- Multisite languages match – whether the language configurations for source and destination are the same
If Test connection fails, this indicates a potential problem with your module configuration. In such situations you should check the following elements:
- Ensure the user credentials for the destination environment, that you have provided when configuring the destination server details on the source environment SiteSync module settings, exist in the target site and are correct. Incorrect user credentials will prevent the SiteSync web service from authenticating on the destination environment.
- Make sure that the user, whose credentials you have configured is not already logged in on the destination site
- Make sure that the destination site is not “sleeping”. In cases when the IIS ApplicationPool of destination site is idle, the SiteSync web service request might fail.
- If you have created the dedicated SiteSync user, on the destination environment, in a membership provider, different than the default one, the SiteSync web service might not be able to authenticate. You must specify the provider name alongside the username when configuring the destination server details on the source environment SiteSync module settings. You must stick to the following format: providerName\userName.
- Ensure that only Anonymous Authentication is Enabled in IIS. This is a prerequisite for the web service to be able to successfully authenticate. This requirement is valid for the default authentication mode (OpenId Connect), and Claims authentication.
NOTE: The test connection operation does not guarantee that a content promotion will pass successfully, as this requires actual push of data from source to destination. It guarantees only that the sync operation can be run.
Inspect the Sitefinity CMS logs on the source and destination environments for any SiteSync errors
Sitefinity CMS has an advanced logging mechanism, providing detailed information about running operations and any encountered errors. In case of problems with promoting content it’s worth to inspect the Sitefinity CMS Error log and the SiteSync module log.
The Synchronization Log
The SiteSync module generates a dedicated log file called Synchronization.log. The file is located under ~/AppData/Sitefinity/Logs folder. The contents of this file differ between the source and the destination environment, as they track different operations:
- Source
The Synchronization.log on the source environment contains information about content that is sent to the destination server. If there are any problems reading the list of content items and/or settings, that you selected to promote to the destination server, they will be logged in the Synchronization.log.
- Destination
On the destination environment, the Synchronization.log contains information about the import of the promoted content. If anything goes wrong during the CRUD operations, associated with importing the promoted content, this information will be preserved in the Synchronization.log.
Inspecting the Synchronization.log can help you identify any potential issues related to data integrity (for example duplicate content Ids, content recorded as available for sync, but no longer existing in the database, and so on).
The Error Log
Sitefinity CMS logs the details of any errors that occur during the website runtime in the Error.log file, located under the ~/AppData/Sitefinity/Logs folder. If an error occurs during promoting content to the destination environment, the SiteSync module will log the error message in the Synchronization.log, but the error details, including the full stack trace (if available) will be recorded by Sitefinity CMS in the Error.log. In addition, if an error that is indirectly related to the content promotion occurs, it might not be logged in the Synchronization.log at all, but it can still be available in the Error.log. As a rule of thumb, if you experience any issues using the SiteSync module, always inspect both the Synchronization.log and Error.log files for any information that might be related to the cause of the problem. An easy way to relate the entries in the two files is by looking for errors, that have been logged around the time the content promotion operation was executing.
Like the Synchronization.log, the Error.log will contain different information on the source and destination environments. The rationale remains the same – the logged errors will be specific to content export (source destination) and content import (destination environment) operations, as well as any indirectly related errors specific to the environment.
Narrow down whether issues are not coming from a specific content type
Sometimes a corrupted database record might cause the content promotion operation to fail. To narrow down whether SiteSync module cannot promote content due to a specific content type, try isolating which one might be causing the problems. You can try selectively promoting only certain types of content first, starting with the ones you recently modified, prior to the problems occurring. If you manage to identify the problematic type of content this can help you promote the rest of the content to the destination environment, while collaborating with the Sitefinity CMS support team on resolving the experienced issues.
Ensure you are promoting the dependencies (and settings, when applicable) of a content type
If you are promoting only selected content types or have narrowed down the sync operation to certain content items only, you might have missed to promote other types of content which are necessary for your content to be created on the destination environment. If you decide to promote only certain types of content (or selected items from that content type), you must ensure you respect the content relations. For example, if you add a related data field of type Images to a content type, you must promote not only the items of this content type, but Images as well.
Use the System Status dashboard widget to monitor SiteSync health
When enabled, the Sitefinity CMS System status widget actively tracks the health status of key application components, among which is the SiteSync module. You can leverage the System status dashboard widget to get real-time information about your SiteSync module status. The System status widget performs an automated Test connection on a predefined period, and in addition to displaying the results on your Sitefinity CMS website dashboard, can also send email notifications if any issues are detected, as well as provide suggestions for resolving them via integration with the Sitefinity CMS Knowledge Base. For more information about the System status widget see System status.
Additional troubleshooting resources
In addition to the troubleshooting articles, listed in this section, you can also use the following resources, if you encounter any issues when promoting content via SiteSync: