Cloud Deployment Through Azure

Arc supports cloud deployment through the Azure cloud platform via Azure Virtual Machines (VMs) and Azure Web Apps.

The recommended approach to hosting Arc via Azure is to use the pre-configured Azure Marketplace instance. In other cases, the following article details the steps required to deploy Arc in Azure.

Deploying Arc to an Existing Azure VM

When deploying Arc to an existing Azure VM, the following steps are required:

  • Initial Arc installation
    • Download the Arc (Windows) installer
    • Transfer the Arc installer to the Azure VM via RDP
    • Ensure the Visual C++ Redistributable is installed on the VM
    • Run the installer on the VM
  • IIS configuration
    • Ensure IIS is installed/enabled on the VM
    • Configure IIS to host Arc by directing IIS to the appropriate folder
    • Ensure IIS has the appropriate permissions and start mode
  • Network configuration
    • Allow web access via the Firewall
  • Initial Arc Installation

    Download the Arc (Windows) Installer

    Download the latest Windows-version installer from the Arc website here.

    Transfer the Arc installer to the Azure VM via RDP

    The easiest way to connect to the Azure VM and transfer files is via Remote Desktop Protocol (RDP). Simply go to your Microsoft Azure portal, select your VM and press the connect button to download an RDP file that you can use to connect to your VM. From your RDP connection, you can copy files to the VM just like you can copy files on your own desktop.

    Copy the setup.exe file downloaded in the previous step to the VM.

    Ensure the Visual C++ Redistributable is installed on the VM

    Arc requires the Visual C++ redistributable to install. If your Azure VM does not already have this installed, it should be downloaded from Microsoft and transferred to the VM via the same RDP copying procedure from the previous step.

    The following is the download permalink (provided by Microsoft here) for the latest version of this redistributable: https://aka.ms/vs/17/release/vc_redist.x64.exe.

    Run the Installer on the VM

    If necessary, first run the Visual C++ redistributable installer from the previous step (vc_redist.x64.exe).

    Then, run the Arc setup.exe to install the application on the VM.

    IIS Configuration

    Ensure IIS is installed/enabled on your VM

    You can find a Microsoft blog detailing the process of enabling IIS on an Azure VM here.

    Configure IIS to host Arc by directing IIS to the appropriate folder

    Within the default IIS website (or using a custom website if desired), add a new Application and set the root folder for this application to the default installation path for the www folder, which contains Arc's web resources: C:\Progam Files\CData\CData Arc\www.

    Ensure IIS has the appropriate permissions and start mode

    IIS needs access to the folders and files necessary for Arc to run. To accomplish this, navigate to the www folder from the previous sub-section and right-click the folder to select Properties and bring up the Security tab. Edit the permissions, then Add a new user called IIS_IUSRS and grant it full control of the folder.

    Next, if Arc needs to be able to generate new self-signed digital certificates, IIS needs to be granted permission to create certificates. The easiest way to accomplish this is to open PowerShell on the VM and run the following pair of commands:

        Set-ItemProperty IIS:\AppPools\DefaultAppPool -name processModel.identityType -value 2
        c:\windows\system32\inetsrv\appcmd.exe set config -section:applicationPools "/[name='DefaultAppPool'].processModel.loadUserProfile:true"
      

    To ensure the app pool hosting Arc is always running, run the following PowerShell command within PowerShell on the VM:

        Set-ItemProperty IIS:\AppPools\DefaultAppPool -name startMode -value 1
    

    Network Configuration

    Allow web access via the Firewall

    Arc (via IIS) uses port 443 (for seucre HTTPS traffic) or port 80 (for plaintext HTTP traffic). The appropriate port must be opened in the Azure firewall using the steps outlined in this Microsoft documentation page.

    Deploying Arc as an Azure Web App

    Initial Arc Deployment

    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 optionally define other Web App settings (default settings are often sufficient).
    2. In the Azure Web App's deployment credentials, create a password for an FTP login that will be used in the next step
    3. Deploy Arc by copying the relevant files to the Web App via an FTP connection:
      • Connect to Azure via an FTP client of choice (e.g. FileZilla, WinSCP, etc), using the User/Password defined in the deployment credentials
      • Copy the contents of the www folder of a local Arc installation (typically C:\Program Files\CData\CData Arc\www) into the /site/wwwroot/ directory for the Azure Web App

    Persisting Arc Configuration via an Azure SQL Database

    In order for Arc flow configuration to be saved to a durable database, an Azure SQL database must be configured as the AppDb for Arc.

    1. Navigate to to dashboard for the Azure database you wish to use and click Show Connection Strings, then copy the ADO.NET connection string for later use
    2. Edit the Web.Config file for your Azure Web App
    3. Define a connectionString under configuration in the Web.Config like the following:
      <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" />
            </connectionStrings>
    4. Ensure that this connection string matches the connection string copied from step 1

    Deploying Additional CData ADO.NET Providers

    Most Arc deployments will not require deploying additional providers to Azure. For deployments using the CData Connector, however, the ADO.NET provider referenced by the connector must be deployed to Azure via the following steps:

    1. Download the CData ADO.NET provider (e.g. NetSuite) to a local machine
    2. Connect to Azure via an FTP client using the FTP login information for the Web App (as discussed in the deployment section)
    3. Copy the .NET framework 4.0 DLL (e.g. System.Data.CData.NetSuite.dll) from the local installation directory (typically C:\Program Files\CData\CData ADO.NET Provider for NetSuite 2022\lib\4.0\) to the remote directory for the Azure Web App: /site/wwwroot/bin/
    4. Edit the Web.Config file for the Azure Web App to 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" />

    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=''/>



Ready to get started?

Use Arc's free 30-day trial to start building your own custom workflows today:

Download Now