Host CData Sync on Azure



CData Sync allows you to replicate any data source to any database with a few clicks. CData Sync is a lightweight Web application that connects to more than 150 relational, non-relational, cloud, and on-premises data sources and allows you to replicate that data to any on-premise or cloud-based database. CData Sync can be hosted on any Windows .NET server such as IIS or Azure.

This article will show you how to deploy CData Sync to Azure, how to add other CData Connectors, and persist your configuration to an Azure SQL database.

Deploy CData Sync as an Azure Web App

  1. In the Azure management console, create a new Web-app resource by clicking 'Create a resource' -> Web -> Web App. In the next menu, choose a name/URL for the Web App and define other Web App settings (though the default should be sufficient).
  2. Deploy CData Sync by copying the files to the web-app. Azure provides several ways to upload files. We recommend using the FTPS host provided with the Web App.

    In 'Deployment credentials' create a password for the FTP login and connect from your FTP client application.

    • Username: Use the Deployment / FTP User value.
    • Password: Use the password you defined in your deployment credentials. If you have not already created a new password, you can do so by clicking Deployment Credentials in the App Development setting of the settings blade for your app.
    • Host: Use the FTPS Host Name value.
  3. Copy the files from the www folder in the installation directory (typically C:\Program Files\CData\CData Data Sync\) to the /site/wwwroot/ directory for the Web App.

Add Other Connection Options with CData Sync Connectors

On Azure, connecting to the CData data sources which are not included in the default installation of CData Sync requires more configuration. To enable CData Sync to connect to new data sources using a CData Connector:

  1. Download the CData Sync Connector for your data source to a local machine. In this walkthrough, we'll use NetSuite as the example.
  2. Using the FTP login information for the Web App, copy the .NET framework 4.0 DLL (System.Data.CData.NetSuite.dll) from the installation directory (typically C:\Program Files\CData\CData Sync\www\bin\) to the /site/wwwroot/bin/ remote directory of CData Sync.
  3. Edit the Web.config file of the remote Web App and add the following line within the <dbProviderFactory> section:

    <add name="CData ADO.NET Provider for NetSuite" invariant="System.Data.CData.NetSuite" description="CData ADO.NET Provider for NetSuite" type="System.Data.CData.NetSuite.NetSuiteProviderFactory, System.Data.CData.NetSuite" />
  4. Save the change and restart the Azure Web App. The NetSuite connector should be listed as a new connection option in CData Sync.

Connecting to Data From CData Sync

See the "Getting Started" chapter in CData Sync help (click HELP on the CData Sync page) for a guide to setting the required connection properties and allowing access to tables.

Persist Configuration to an Azure SQL Database

You can persist schemas, users, settings, and logs to an Azure SQL database. Add entries for AppDb, AppUsers, and AppLogs like the following to the configuration node in your Web.config:

<configuration>
  <connectionStrings>
    <add name="AppDb" connectionString="Server=tcp:abcdef123.database.windows.net,1433;Database=mydb;User ID=MyUser@abcdef123;Password=MyPassword;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;" providerName="System.Data.SQLClient" />
    <add name="AppUsers" connectionString="Server=tcp:abcdef123.database.windows.net,1433;Database=mydb;User ID=MyUser@abcdef123;Password=MyPassword;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;" providerName="System.Data.SQLClient" />
    <add name="AppLogs" connectionString="Server=tcp:abcdef123.database.windows.net,1433;Database=mydb;User ID=MyUser@abcdef123;Password=MyPassword;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;" providerName="System.Data.SQLClient" />
  </connectionStrings>

You can get the connection string by clicking Show Connection Strings from the dashboard for your database. Use the ADO.NET connection string.

Troubleshooting

If you get an error during deployment, details about the error may not be visible due to ASP.NET security policy. The first troubleshooting step is often to add the following property to your Web.config and redeploy:

<system.web>
  <customErrors mode="Off" />
  ...
</system.web>

You can then access the full stack trace, containing the error message.

  • Server Error in '/' Application: To resolve this error, comment out the following property in your Web.config and then redeploy:

    <compilation tempDirectory=''/>