Advanced

Advanced Users

There are some situations which can't really be covered by a list of FAQs, but arise from time to time. To help users we will document some more in-depth issues here.

Running the application on multiple machines

If you want to run the application on multiple machines, you should use the same settings for the inbox and outbox, and it's desirable to set the appdata path for the following reasons:

This way the logs will be shared amongst all users of the application. To do this follow the instructions below.

If it is not possible or practical to share the inbox and outbox between machines, you can install the application and import the same access keys on all systems. However this way the logs will not be shared, and files received by one computer will not be available for any others.

On the other hand, if you need the logs to be shared as well please follow the instructions here.

I use mandatory profiles

This means that the application can not write to the user's profile, or the profiles get wiped every time the user logs off.

There is an option in the installer for setting a custom path, but there appear to be problems in certain environments. To set it manually, follow the following instructions.

Note that these instructions also cover the case where you want multiple machines to access the application with shared logs/keys. If this doesn't apply to you disregard the pieces referring to multiple machines.

Creating a shared folder

In a location that you know both machines that the application is installed on has access to you must create a new folder to contain the application data. It may be wise for this to be in the same area as your inbox, outbox and archive. Perhaps create a new folder alongside these called 'appdata'. You must ensure that both users who will be using the application have both read and write access to this folder. This may require some assistance from your IT staff.

Copying existing logs and other data to the new shared folder

You will only be able to keep the existing logs from one of the machines that the application is installed on. Choose which machine this will be and on it do the following:

  • press and hold the windows key on your keyboard and press R, the Run dialog box should appear.
  • into the textbox type "%APPDATA%\A2C Migration Application" and click 'OK', a folder should appear containing 4 or 5 files.
  • Select all of these files, right click on them and click 'Copy'
  • Now open the folder that you created in the 'Creating a shared folder' step above.
  • Right click within the new folder and click 'Paste', the files (log.db, SavedCerts, etc.) should now be copied into this shared folder.
  • Updating the applications to use the new shared folder

    The following steps must be carried out on the application on both machines:

    • Open the folder that you have installed the application to, most likely: "C:\Program Files\A2C Migration Application".
    • In this folder you will find a file called "jcq.a2c.client.gui.exe.config", right click on this and open it in notepad
    • Within this file about half way down locate the following line:
      <add key="CustomAppDataPath" value=""/>
      You must alter this line, adding a value for this key - this must be the path to the folder that you created above in 'Creating a shared folder' - so it should look something like (the double quotes around the value are important):
      <add key="CustomAppDataPath" value="S:\Exams\appdata" />
    • Save this file and close it.

    After you have completed this step you should be able to launch the application and your logs and other application data will be shared.

    How can I set an alternative proxy?

    I am afraid that the application does not provide an option for that itself. It can, however, be achieved by editing the jcq.a2c.client.gui.exe.config file in the installation directory. If you open the file in notepad and then add the following after the closing appsettings tag:

    <system.net>
        <defaultProxy useDefaultCredentials="true" >
            <proxy
                proxyaddress="http://my-proxy:port"
            />
        </defaultProxy>
    </system.net>

    replacing my-proxy with the DNS name or IP address of your proxy, and port with the port it uses (for example 3128, 8888, 8080 and so on).

    You can find more information on these settings here.

    Why do I receive 'Invalid Access Key'

    If it's saying 'Invalid Access Key', it could be any number of things. It is most likely a permissions issue on the local machine. If you could look at the contents of "%APPDATA%\A2C Migration Application\Error.txt" - this contains the stack trace, which will be of System.Security.Cryptography.CryptographicException.

    The problem (most likely) is that it will say something along the lines of 'Access Denied':

    -------------------------
    Error occurred at 1/12/2012 5:11:10 PM
    HRESULT: 80070005: System.Security.Cryptography.CryptographicException: Access is denied.
    at System.Security.Cryptography.CryptographicException.ThrowCryptogaphicException(Int32 hr)
    at System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromFile(String fileName, IntPtr password, UInt32 dwFlags, Boolean persistKeySet, SafeCertContextHandle& pCertCtx)

    And so on.

    If it's a different error you get (instead of 'Access Denied') please let us know.

    The cause of this issue is, in order to support mandatory profiles we can't use the default key set (which will always fail with "The user is logged on with a temporary profile"). To fix it, make sure the users who need to run the application have full access to the machine key set.

    In Windows XP it is normally: C:\Documents and settings\All Users\Application Data\Microsoft\Crypto

    In windows vista and 7 it is normally: C:\ProgramData\Microsoft\Crypto

    The location is referred to by the %ALLUSERSPROFILE% environment variable.