單機多站¶
如果有開通多程序授權,一台電腦可以同時執行好幾個 HiNC 站,每一站有自己的網址、各自執行自己的專案。一個站就是用一個名稱啟動的 HiNC;這個名稱決定這一站讀哪個設定檔,也讓它的日誌與步驟快取和其他站分開。
設定一個站¶
-
在資料目錄
%LocalAppData%\HiNC\webservice裡建立appsettings.local.<站名>.json,寫上這一站自己的網址與登入 cookie 名稱。以名為Sub-1的站為例,檔案是appsettings.local.Sub-1.json:{ "Kestrel": { "Endpoints": { "Http": { "Url": "http://localhost:5001" } } }, "Auth": { "CookieName": "HiNC.Auth.Sub-1" } }網址一定要不同:兩個站用同一個埠時,第二個站啟動不了。打開登入後,cookie 名稱也一定要不同:瀏覽器對
localhost只有一組 cookie,不分埠,所以同名的各站共用同一個登入,登入其中一站會讓瀏覽器也登入其他站,或把它們登出。站的檔案在appsettings.local.json之後讀取,所以每一站共用的東西——管理者目錄、登入帳號——留在appsettings.local.json,站的檔案只寫不一樣的部分。 -
在命令提示字元或「執行」對話框(Windows 鍵 + R)裡,用站名啟動這一站:
要讓它一按就開,就複製一份 HiNC 捷徑,打開這份複本的內容,在 目標 的最後先空一格,再加上
--environment Sub-1。把複本直接放在桌面或「開始」功能表裡:更新若換了程式檔,會把放在那裡的複本改成指向新的程式,並保留它的--environment參數與名稱。放在其他資料夾、仍然指名HiNC-2025-webservice.exe的複本,要自己改成指向HiNC-2025.exe。解除安裝 HiNC 時,桌面與「開始」功能表裡的複本會和 HiNC 捷徑一起被移除。
HiNC 捷徑本身啟動的是名為 Production 的站,它不需要自己的檔案:有 appsettings.local.json 就夠了。不要把站命名為 Development:程式資料夾裡出貨時就帶著這個名稱的設定,它們會套用到那一站上。
可攜式副本(見在 Windows 上安裝 HiNC)把站的檔案放在它旁邊的 data 資料夾,在它自己的資料夾裡以 HiNC.exe --environment Sub-1 啟動一站,也沒有捷徑可以複製。
| 每一站各自保有 | 同一份安裝的各站共用 |
|---|---|
| 網址,以及登入 cookie 的名稱 | appsettings.local.json |
服務日誌,資料目錄裡的 logs\log-<站名>-<日期>.txt |
管理者目錄 |
步驟快取,管理者目錄裡的 Cache\<站名>.db |
偏好設定,以及在更新對話框裡做的選擇 |
每一站只在啟動時讀一次共用的偏好設定與更新選擇,有變動時把它們整份寫回。請在其他站都關閉時修改,或改完後把其他站重新啟動;否則其他站下一次變更這些設定時,會把它手上的舊值寫回去。
多站時的更新¶
每一站都會顯示更新標記,也都能安裝版本(見在 Windows 上更新 HiNC)。各站都從同一份安裝執行,因此有三條規則:
- 一次只能有一站下載。 另一站正在下載或安裝時,這一站若也嘗試,會回報 Another station of this installation is updating.(這份安裝的另一站正在更新),並自己再試。在某一站下載好、正在等著的版本,會在另一站下載別的版本時被丟掉;這時在第一站按 重新啟動並套用,會在 上次的問題 說明這件事,那個版本必須再安裝一次。
- 下載好的版本會等著。 還有其他站在執行時,下載完成並不會重新啟動任何東西,而是等著按 重新啟動並套用。
- 安裝會關掉每一站,而只有一站會回來。 重新啟動並套用 會在「其他站會被關閉」底下列出它要關掉的站——列的是行程名稱與 id,例如
HiNC-2025 (PID 1234),不是站名——等你按 仍要重新啟動。只有按下它的那一站會以新版本重新啟動;其他站請從它們的捷徑再啟動。如果那一站同時有模擬正在執行,它會改問模擬的事,而在那裡確認,會直接關掉其他站,不會先列出它們。
最省事的做法:在其他站都沒有東西在執行時,從其中一站安裝,然後再把其他站啟動起來。
沒有經過安裝的副本¶
從一份安裝複製到位、而不是用安裝程式安裝的 HiNC 資料夾——可攜式副本不算在內,它算是已安裝的——把設定放在程式旁邊:一站讀的是 appsettings.json 旁邊的 appsettings.<站名>.json,並在那個資料夾裡以 HiNC-2025.exe --environment <站名> 啟動。這樣的副本可以檢查更新,但不能安裝。
伺服器部署執行的則是 HiNC-2025-webservice 範例:單獨執行的網頁服務,沒有已安裝的 HiNC 在它之上加上的那些東西(見從另一個專案裝載網頁服務;英文,未鏡像)。它的站也以同樣的方式設定,每一站都在部署的資料夾裡以 --environment <站名> 啟動,而它完全不會自己更新。
除此之外,兩者的運作都和已安裝的副本一樣。它們的各站各自需要一個網址,登入打開後也各自需要一個 Auth:CookieName。每一個都只在自己設定寫的網址上回應,從不把 http 轉址到 https:要只用 HTTPS,就只給它一個 https:// 網址。讓其他電腦連得到的伺服器要打開登入;憑證以及放在它前面的代理,見經由 HTTPS 或你自己的反向代理連上 HiNC。