Single-Machine Multi-Station
If multi-process licensing is enabled, one computer can run several HiNC stations at once, each at an address of its own and each running its own project. A station is HiNC started under a name; the name picks the station's settings file and keeps its log and its step cache apart from the other stations'.
On the cloud package the stations share the computer's one cloud sign-in, with every other cloud-package HiNC the same Windows user runs there. The station started first shows the sign-in page; one started while that page is still open waits, saying Another HiNC on this computer is signing in or running; this one starts by itself once there is a lease, and starts once the first is signed in, its browser tab turning into HiNC by itself (with 3.2.53 or earlier, reload the tab if it still shows that line). Close the other stations before signing out on one (see Signing In with a Cloud Account).
Setting up a station
In the data folder,
%LocalAppData%\HiNC\webservice, createappsettings.local.<station>.jsonwith an address and a sign-in cookie name of the station's own. For a station namedSub-1, the fileappsettings.local.Sub-1.json:{ "Kestrel": { "Endpoints": { "Http": { "Url": "http://localhost:5001" } } }, "Auth": { "CookieName": "HiNC.Auth.Sub-1" } }The address has to differ: of two stations on one port, the second cannot start. The cookie name has to differ once sign-in is on: a browser keeps one set of cookies for
localhost, whatever the port, so stations sharing a name share one sign-in, and signing in to one signs the browser in to the others, or out of them. The station's file is read afterappsettings.local.json, so what every station shares — the projects folder, the sign-in accounts — stays inappsettings.local.json, and the station's file carries only what is different.Start the station under its name, from a Command Prompt or the Run dialog (Windows key + R):
"%LocalAppData%\HiNC-2025-webservice\current\HiNC-2025.exe" --environment Sub-1To keep it one click away, copy the HiNC shortcut, open the copy's properties and add
--environment Sub-1to the end of Target. Keep the copy directly on the desktop or in the Start menu: an update that changes the program file points a copy there at the new program and keeps its--environmentargument and its name. A copy kept in another folder that still namesHiNC-2025-webservice.exehas to be pointed atHiNC-2025.exeby hand. Uninstalling HiNC removes the copies on the desktop and in the Start menu together with the HiNC shortcut.
The HiNC shortcut itself starts the station named Production, which needs no file of its own:
appsettings.local.json is enough for it. Do not name a station Development: the program folder ships
settings under that name, and they would apply to it.
A portable copy (see Installing HiNC on Windows) keeps its station files in
the data folder beside it, starts a station as HiNC.exe --environment Sub-1 run in its own
folder, and has no shortcut to copy.
| Kept per station | Shared by the stations of one installation |
|---|---|
| The address, and the sign-in cookie's name | appsettings.local.json |
The service log, logs\log-<station>-<date>.txt in the data folder |
The projects folder |
The step cache, Cache\<station>.db in the projects folder |
Preferences, and the choices made in the update dialog |
A station reads the shared preferences and update choices once, when it starts, and writes them back whole when they change. Change them while the other stations are closed, or restart the others afterwards; otherwise the next change made on another station writes its older values back.
Updates with several stations
Every station shows the update badge and can install a version (see Updating HiNC on Windows). All stations run from the same installation, which gives three rules:
- One download at a time. A station that tries while another is downloading or installing reports Another station of this installation is updating. and tries again by itself. A version downloaded on one station and waiting there is dropped when another station downloads a different one; Restart and Apply on the first station then says so under Last problem, and the version has to be installed again.
- A download waits. While other stations are running, a finished download does not restart anything; it waits for Restart and Apply.
- Installing closes every station, and only one comes back. Restart and Apply lists the
stations it will close under Other stations will close — by process name and id, such as
HiNC-2025 (PID 1234), not by station name — and waits for Restart Anyway. Only the station it was pressed on starts again, on the new version; start the others again from their shortcuts. When that station also has a run in progress, it asks about the run instead, and confirming that closes the other stations without listing them.
The quiet way through: install from one station while the others have nothing running, then start the others again.
A copy that was not installed
A HiNC folder copied into place from an installation rather than installed — not the portable copy,
which counts as installed — keeps its settings beside the program: a station reads
appsettings.<station>.json next to appsettings.json, and starts with
HiNC-2025.exe --environment <station> run in that folder. Such a copy can check for updates but
not install them.
A server deployment runs the HiNC-2025-webservice sample instead: the web service on its own,
without what the installed HiNC adds to it (see
Hosting from another project). Its
stations are set up the same way, each started with --environment <station> in the deployment's
folder, and it does not update itself at all.
Otherwise both serve like an installed copy. Their stations each need an address and, once sign-in
is on, an Auth:CookieName of their own. Each answers only on the addresses its settings name and
never redirects http to https: to serve HTTPS only, give it only an https:// address. A server
that other computers reach runs with sign-in on;
Reaching HiNC over HTTPS or through your own reverse proxy
covers the certificate, and a proxy in front of it.