Tuesday, 20 May 2014

How to run multiple versions of Syspro

If you are a Syspro developer, you may want to run multiple versions of Syspro on the same machine. This article describes how to install and switch between version 6.1 and 7.0 of Syspro.

Setup

You probably already have Syspro 6.1 (server) installed, plus Syspro 6.1's versions of Syspro WCF and Syspro Web Services, so we'll take that as the starting point.

Install Syspro 7.0 (server), but pay attention to the points below.

Installing Syspro 7.0 Web Services

When installing Syspro Web Services version 7, it will remove and replace version 6.1’s web services; that is OK; you will not need to re-install Syspro 6.1 web services to access Syspro 6.1 web services. You will be able to access both versions of web services with Syspro 7's web services... so long as you follow the steps below under "Switching between versions".

Installing Syspro 7.0 WCF

Installing Syspro 7 WCF will wipe out your Syspro 6 WCF installation, so the recommend procedure is:
  1. Backup your Syspro 6 WCF config file.
  2. Install Syspro 7 WCF.
  3. Re-install Syspro 6 WCF, but to a DIFFERENT directory.
  4. Re-configure Syspro 6 WCF using the config file you saved in step 1.
  5. Configure Syspro 7 WCF to use DIFFERENT ports to Syspro 6.1 WCF.

Switching between versions

From an elevated command prompt, unregister the Syspro 6.1 version of Encore.dll and register the Syspro 7 version, e.g.

cd /syspro61/base
regsvr32 /u encore.dll
cd /syspro7/base
regsvr32 encore.dll

Then you should be able to use Syspro 7’s web services – you will need to use the correct company code and the instance number for your Syspro 7 installation, of course.

You will not be able to access Syspro 6 while Syspro 7’s Encore.dll is registered; you must use the procedure in reverse to unregister Syspro 7's Encore.dll and register Syspro 6.1's Encore.dll.

Thursday, 15 May 2014

How to test your Syspro WCF Service

These are some basic tests you can use to check if Syspro's WCF Service is up and running.
  1. Open a web browser and go to a URL such as:

    http://example.com:97/SYSPROWCFService/Rest

    You should see something like this:

  2. Open a web browser and go to a URL such as:

    http://example.com:97/SYSPROWCFService/Rest/GetVersion

    You should receive a text file called GetVersion containing the version number of the WCF Service, e.g. 7.0.0.3.
  3. Can you ping the Syspro server (provided the Syspro server responds to ICMP ping requests)?
     
  4. Telnet to the server and port, then hit ENTER a few times, e.g.

    telnet example.com 99

    If you get this:

    Connecting To example.com...Could not open connection to the host, on port 99: Connection failed

    then you didn't get a connection at all. This could happen if you had the wrong port or IP address.

    However, if you got a clear screen, then when you hit ENTER the telnet session terminated, then you got a connection OK.

    "Actively refused" means that you got at least as far as a TCP Connect packet arriving at the named server.
     
  5. From an elevated command prompt (i.e. run CMD as Administrator), run this command:

    netstat -ano | findstr 9999

    where 9999 is the process number or port number you are interested in.
    You should see your process and port listed.
     
  6. Check the Event Log for any error messages: in the Event Viewer, look under Application and Services Logs / SYSPROWCF.