在 Windows 上安裝 HiNC¶
HiNC 的 Windows 版就是一個安裝程式。它替執行它的那個 Windows 使用者裝好 HiNC 並啟動它;之後有新版本時 HiNC 會告訴你,並在你決定的時候,從應用程式裡把它裝上。本頁說明下載、第一次啟動、怎麼打開登入、設定與資料放在哪裡、怎麼經由 HTTPS 連上 HiNC,以及怎麼再把 HiNC 移除。其他啟用頁面都以本頁為基礎:
電腦需要 64 位元的 Windows 10 或更新版本,其餘條件見系統需求。安裝程式本身就帶著 HiNC 需要的執行環境;唯一可能要先裝的,是紅色授權鎖需要的 Sentinel 執行環境,版本要 10.33 或更新(第 2 步)。
安裝¶
-
下載安裝程式:
https://superhightech-hinc-1.webredirect.org/hinc-update/win/HiNC-2025-webservice-win-Setup.exe
如果這個網址沒有回應,下列每一個網址的同一路徑上都有同一個檔案:
-
把 HiNC 授權鎖插上電腦。如果是紅色授權鎖,請先執行授權更新頁上的一鍵安裝程式:它會安裝紅色授權鎖需要的 Sentinel 執行環境,已經裝了但比 HiNC 需要的舊時會把它升級,安裝時會要求系統管理員權限。
-
執行下載的檔案。它不問任何問題,也不需要系統管理員權限:它替目前的 Windows 使用者安裝 HiNC,在桌面與「開始」功能表各放一個 HiNC 捷徑,然後啟動 HiNC。
如果 Windows 顯示「Windows 已保護您的電腦」,請按 其他資訊,再按 仍要執行。
-
HiNC 會用網頁瀏覽器開啟它的網址
http://localhost:5000,直接進入應用程式:在你打開登入之前,已安裝的 HiNC 不要求登入(見下方的登入)。
HiNC 是替一個 Windows 使用者安裝的。另一位使用者用自己的 Windows 帳號登入同一台電腦時,要替自己再安裝一次。
啟動與停止 HiNC¶
從 HiNC 捷徑啟動 HiNC。會開出一個主控台視窗;HiNC 準備好之後,視窗會印出要從哪裡連上它:
========================================================================
HiNC <version> is running (<environment>).
Open in a browser: http://localhost:5000
Settings file: <data folder>\appsettings.local.json
Data and logs: <data folder>
Closing this window stops HiNC.
========================================================================
除非這份 HiNC 是以一個站的身分啟動(見單機多站),環境名稱就是 Production。最後一行的意思是「關掉這個視窗就會停止 HiNC」。視窗標題也帶著版本與網址。
- 主控台視窗就是 HiNC。 關掉它就停止 HiNC,連著它的每個瀏覽器分頁都會斷線。要讓它讓開,請縮到最小,不要關掉。
- 每次從捷徑啟動,都會用瀏覽器開啟 HiNC 的網址。這個網址只在這台電腦上有回應;要讓其他電腦開啟 HiNC,需要打開登入並放寬網址(見登入)。
登入¶
已安裝的 HiNC 不要求登入。它的網址只在這台電腦上有回應,所以 HiNC 用起來就跟這台電腦上的其他程式一樣。登入關著的時候,除了 HiNC 自己的頁面,任何網頁透過你的瀏覽器要求 HiNC 做的事,HiNC 也一律拒絕——不論那個網頁來自別的網站,還是這台電腦上的其他程式;只是開啟 HiNC 的連結照樣可用。要讓 HiNC 要求登入——尤其是在讓其他電腦連得到它之前——請在 appsettings.local.json 的 Auth 底下寫上 "Enabled": true 與你自己的帳號(見變更設定),然後重新啟動 HiNC:
HiNC 出廠不帶任何帳號,所以只打開登入、不寫帳號的話,誰都進不來。帳號放在設定裡:應用程式裡沒有新增帳號或更改密碼的地方。登入卡與登入關卡擋住了什麼,見登入。
讓其他電腦連上 HiNC 要兩項設定:打開登入並寫上你自己的帳號,以及一個回應它們的網址 Kestrel:Endpoints:Http:Url(見變更設定)。只放寬網址不夠:登入關著時,HiNC 只回應連到 localhost、127.0.0.1 或 [::1] 的請求,其他電腦會收到 400 Bad Request。
從舊版更新上來的安裝(重要)
較早的版本出廠時登入是開著的,並附帶一個帳號。appsettings.local.json 的 Auth 底下寫了帳號、卻沒寫 "Enabled": true 的安裝,更新之後就不再要求登入;要保留登入,請在它的 Users 旁邊補上 "Enabled": true。在那之前,除非 AllowedHosts 列出其他電腦用來連線的名稱,它們都會收到 400 Bad Request:登入關著時,HiNC 只回應連到 localhost、127.0.0.1 或 [::1] 的請求。
視窗自己關掉時¶
如果主控台視窗在 HiNC 啟動後不久、瀏覽器還沒開啟就消失,是下面其中一個原因讓它停下來的:
- HiNC 取不到授權。 授權鎖沒有插上,或這台電腦缺少 Sentinel 執行環境——紅色授權鎖需要它。插上授權鎖,再啟動一次 HiNC。如果視窗還是會關掉,請執行授權更新頁上的一鍵安裝程式:它會安裝 Sentinel 執行環境,並把授權鎖裡的授權更新到最新。HiNC 執行期間也每十分鐘檢查一次授權,再也取不到時就會停止。每一次,服務日誌都會記下
HiApi is not licensed.(見設定與資料);較新的版本會在下一行加上 Sentinel 狀態碼,說明是上面哪一種。 - Sentinel 執行環境比 HiNC 的舊。 紅色授權鎖插在這台電腦上時,HiNC 需要 Sentinel 執行環境 10.33 或更新版本。版本較舊時,授權鎖與授權都沒問題,HiNC 卻一啟動就停下:服務日誌記下
HiApi is not licensed.(下一行若有 Sentinel 狀態碼,會是 42,HASP_OLD_LM),Sentinel 管理頁http://localhost:1947顯示的 License Manager 早於 32.2,也一筆登入都沒有。請執行授權更新頁上的一鍵安裝程式,它會把執行環境升級,再啟動 HiNC。 - 網址已經被占用。 HiNC 已經在執行(它的視窗還開著,可能縮到了工作列上),或另一個程式占用了 5000 埠。請使用正在執行的那個 HiNC,或給這一個另一個網址。
- 設定有錯。 剛改過
appsettings.local.json:JSON 寫錯(少了逗號、路徑裡的反斜線只寫一個)、管理者目錄指到不存在的磁碟機,或https://網址沒有 HiNC 讀得到的憑證,都會讓 HiNC 立刻停下,而且通常來不及寫日誌。請把剛才的修改還原,或從命令提示字元啟動 HiNC,視窗會留著並顯示錯誤:"%LocalAppData%\HiNC-2025-webservice\current\HiNC-2025.exe"。
設定與資料¶
HiNC 把兩個資料夾分開,要知道的地方有三處:
| 資料夾 | 裡面放什麼 | 更新後還在嗎? |
|---|---|---|
%LocalAppData%\HiNC-2025-webservice |
程式本身。每次更新都會換掉裡面的內容。 | 不會——這裡什麼都不要改,連它的 appsettings.json 與 HiNC-2025.settings.json 也一樣 |
%LocalAppData%\HiNC\webservice——資料目錄 |
appsettings.local.json(你的設定);appsettings.local.<站名>.json(某一站自己的設定,見單機多站);logs\(服務日誌,每站每天一個檔案);UserConfig.xml(偏好設定);update-state.json(在更新對話框裡做的選擇) |
會;解除安裝也會留下它 |
C:/HiNC-Projects——管理者目錄 |
你的專案、共用的 Resource 資源庫,以及步驟快取。它就是檔案總管的 Admin 根目錄。HiNC 第一次啟動時會建立它。 |
會;解除安裝也會留下它 |
要打開資料夾,把它的名稱——例如 %LocalAppData%\HiNC\webservice——貼到 Windows 檔案總管的網址列即可。
變更設定¶
資料目錄裡的 appsettings.local.json 只放你要改的設定;其中每個鍵都會覆蓋 HiNC 出廠時的設定。HiNC 第一次啟動時會寫出這個檔案,附上加了註解的範例,而且只在啟動時讀它,所以改完要重新啟動 HiNC——關掉主控台視窗,再從捷徑啟動一次。這個檔案接受 // 註解。
{
"Kestrel": { "Endpoints": { "Http": { "Url": "http://localhost:5010" } } },
"ProxyConfig": { "AdminDirectory": "D:/HiNC-Projects" },
"Auth": { "Enabled": true, "Users": [ { "Username": "operator", "Password": "<set-your-own>" } ] },
"Launch": { "OpenBrowser": false }
}
| 設定 | 出廠值 | 作用 |
|---|---|---|
Kestrel:Endpoints:Http:Url |
http://localhost:5000 |
HiNC 聆聽的網址。localhost 只限這台電腦。http://*:5000 也會回應其他電腦,用這台電腦的名稱或 IP 位址連線——前提是登入已打開;登入關著時它們會收到 400 Bad Request(見 AllowedHosts)。第一次用這種網址啟動時會跳出「Windows 安全性警訊」,讓 HiNC 通過 Windows Defender 防火牆需要系統管理員。https:// 網址需要憑證,見經由 HTTPS 或你自己的反向代理連上 HiNC。 |
AllowedHosts |
無 | HiNC 會回應的名稱,以 ; 分隔——例如 localhost;127.0.0.1;[::1];MYPC;192.0.2.20——或寫 * 表示任何名稱。沒有設定時,它跟著登入走:登入關著時,HiNC 只回應 localhost、127.0.0.1 與 [::1],防的是網頁借用別的名稱連到 HiNC;登入打開時,任何名稱都回應。用 HiNC 不回應的名稱連進來的請求會收到 400 Bad Request,服務日誌會記下那個名稱。它不是存取控制——瀏覽器以外的程式想送什麼名稱都可以——讓其他電腦連上 HiNC 也不需要它。只在你要自己決定名稱時才設定;登入關著時,把其他電腦用的名稱列進來,就等於讓它們不用登入就能進來。清單照寫的用,所以如果這台電腦上也要開 HiNC,請把 loopback 名稱留在裡面;為舊版寫的清單仍然有效。 |
ProxyConfig:AdminDirectory |
C:/HiNC-Projects |
管理者目錄。舊目錄裡已有的東西 HiNC 不會搬,請自己搬過去。 |
Auth:Enabled |
false |
HiNC 是否要求登入。true 會把每個畫面都關在登入卡後面;在其他電腦連得到 HiNC 之前就要打開。 |
Auth:Users |
無 | 登入用的帳號,每個都是一組 Username 與 Password,只在 Auth:Enabled 為 true 時才會讀。每一項都要把兩個欄位寫齊。後讀的設定檔(例如某一站自己的設定)會逐項取代這份清單。 |
Auth:CookieName |
HiNC.Auth |
讓瀏覽器維持登入的 cookie 名稱,只在 Auth:Enabled 為 true 時才會讀。瀏覽器用同一個電腦名稱、不同埠連到的好幾個 HiNC——例如單機多站的各站——各自需要一個名稱:瀏覽器每個電腦名稱只有一組 cookie,不分埠,名稱相同時,登入其中一個就會讓瀏覽器也登入其他的,或把它們登出。 |
Launch:OpenBrowser |
true |
使用者啟動 HiNC 時是否開啟瀏覽器。更新之後的重新啟動從不開啟:原本的頁面仍然開著,會自己重新連線。 |
Update |
在程式資料夾的 HiNC-2025.settings.json 裡;見在 Windows 上更新 HiNC |
更新從哪裡來,以及 HiNC 多久查看一次。 |
設定依下列順序讀取,後面的來源會覆蓋它所指名的那些鍵:
- 程式資料夾裡出貨的
appsettings.json,接著是出貨的appsettings.<environment>.json; - 出貨的
HiNC-2025.settings.json(它指名更新伺服器),接著是HiNC-2025.settings.<environment>.json,同樣在程式資料夾裡; - 資料目錄裡的
appsettings.local.json; - 資料目錄裡的
appsettings.local.<environment>.json,給以該環境名稱啟動的站使用; - 環境變數;
- 命令列。
經由 HTTPS 或你自己的反向代理連上 HiNC¶
HiNC 照設定裡寫的每個網址原樣回應。它從不把 http 轉址到 https,也不送 HSTS(Strict-Transport-Security)標頭;兩者要的話,請在你自己的反向代理設定。要只用 HTTPS,就只給 HiNC 一個 https:// 網址。不論其他電腦經由哪一種方式連上 HiNC,都請先打開登入(見登入)。
由 HiNC 自己提供 HTTPS¶
在 appsettings.local.json 加一個 https:// 網址,連同 HiNC 在那裡要出示的憑證——如果檔案裡已經有 Kestrel 項目,就寫在它裡面:
"Kestrel": {
"Endpoints": {
"Https": {
"Url": "https://*:5443",
"Certificate": { "Path": "<folder>/hinc.crt", "KeyPath": "<folder>/hinc.key" }
}
}
}
其他電腦接著開啟 https://<這台電腦的名稱>:5443;第一次用它啟動時,和其他電腦連得到的任何網址一樣,會跳出「Windows 安全性警訊」。
Path與KeyPath是憑證和它的私鑰,都是 PEM 檔;如果是.pfx檔,改寫它的Path與Password。請寫完整路徑、用/,放在更新不會換掉的資料夾:資料目錄可以,程式資料夾不行。- 沒有憑證,或憑證讀不到,HiNC 就不會啟動:它的視窗會立刻關掉(見視窗自己關掉時)。
- 憑證必須帶著瀏覽器開啟 HiNC 用的名稱——例如
MYPC。自己做的(自簽)憑證可以用,但每個瀏覽器第一次開啟 HiNC 時都會顯示警告頁,直到那台電腦把這份憑證安裝為受信任;由電腦已經信任的憑證機構簽發的憑證就不會有警告。 - 出廠的
http://localhost:5000仍然保留,只給這台電腦用。要讓 HiNC 完全沒有明文網址,就把https://網址和它的憑證寫在Http底下、而不是Https:項目的名稱只是標籤。
經由你自己的反向代理¶
反向代理——IIS、nginx、Caddy 或任何放在 HiNC 前面的網頁伺服器——可以接手憑證、對外名稱、http 的轉址與 HSTS。代理在同一台電腦上時,讓 HiNC 維持 http://localhost:5000,除了代理以外誰都直接連不到 HiNC,再把代理設定成:
- 在網址的根路徑
/提供 HiNC。 HiNC 不能放在/hinc/這類資料夾底下:它的頁面一律從根路徑定位所有東西。 - 轉送 WebSocket 連線,也就是轉送
Upgrade與Connection標頭。3D 畫面、訊息清單、執行狀態與圖表都經由它們送到瀏覽器。 - 告訴 HiNC 瀏覽器用的是哪個協定,寫在
X-Forwarded-Proto,這樣在 HTTPS 後面時,HiNC 會把登入 cookie 標成只經由 HTTPS 傳送。一併轉送X-Forwarded-For,服務日誌記下的就會是瀏覽器的位址,而不是代理的。 - 讓上傳通過。 會限制請求大小的代理——nginx 預設就限 1 MB——會拒絕在檔案總管上傳較大的檔案。
只要其他電腦連得到代理,就要打開登入:同一台電腦上的代理連 HiNC 的身分就是這台電腦,登入關著時,它會把 HiNC 交給每一個連得到代理的人。同一個名稱底下、不同埠上的好幾個 HiNC,各自需要自己的 Auth:CookieName(見變更設定)。那個名稱與它的網域請只給 HiNC 用:瀏覽器把同一名稱的其他埠、或同一網域的其他主機上的網頁,都當成同一個網站,那樣的網頁可能以已登入 HiNC 的使用者身分做事。
讓 HiNC 保持最新版¶
選單列左端、HiNC 標誌旁邊的版本標記,同時也是更新標記。有較新的版本開放給這台電腦時,它變成橘色的 v<目前版本> → <新版本>;發行者撤回了目前執行的版本時,它變成紅色。HiNC 只會檢查——啟動後十分鐘內一次,之後大約每天一次——不會自己安裝任何東西。
要更新,就按一下更新標記,或選 「說明」›「檢查更新…」,然後在 軟體更新 對話框按 更新到 版本。HiNC 會下載這個版本、重新啟動為它,頁面也會自己重新載入。其餘的——更新標記的每一種狀態、對話框、已撤回與分批開放的版本、更新伺服器、教室鏡像,以及同一台電腦執行好幾個站時怎麼更新——見在 Windows 上更新 HiNC。
HiNC 捷徑啟動的是程式資料夾裡的 current\HiNC-2025.exe。更新若換了程式檔,會把啟動 HiNC 的捷徑改成指向新的程式檔,並保留它們的參數——指的是直接放在桌面、「開始」功能表、「啟動」資料夾裡,以及釘選在工作列上的捷徑,HiNC 捷徑的複本也包括在內。.bat 檔,或放在其他地方的捷徑,只要仍然指名 HiNC-2025-webservice.exe,就要自己改成指向 HiNC-2025.exe。讓其他電腦連得到的安裝,在這樣的更新之後可能會再跳出一次「Windows 安全性警訊」;請再讓 HiNC 通過 Windows Defender 防火牆一次。
可攜式副本¶
和安裝程式放在同一個資料夾的 HiNC-2025-webservice-win-Portable.zip,是不用安裝的同一個 HiNC,也就是可攜式副本。把它解壓到一個你能寫入的資料夾,然後啟動 HiNC.exe。它和已安裝的副本一樣會自己更新,但它的設定、日誌與更新選擇放在它旁邊的 data 資料夾,而不是 %LocalAppData%\HiNC\webservice。它不建立捷徑,也不出現在 Windows 的應用程式清單裡;刪掉它的資料夾就移除了。除非它自己的 appsettings.local.json 另有指定,它的管理者目錄仍然是 C:/HiNC-Projects。可攜式副本更新時不會改動任何捷徑:你自己的捷徑或 .bat 檔請指向 HiNC.exe,它啟動的永遠是資料夾裡現有的那個版本。
解除安裝¶
打開 Windows 的 「設定」›「應用程式」›「已安裝的應用程式」(Windows 10 為 「應用程式與功能」),找到 HiNC,選 解除安裝。正在執行的 HiNC 會被關掉,程式資料夾與捷徑會被移除。資料目錄與管理者目錄會留下來;要徹底移除,請自己刪掉它們。之後再安裝時,會沿用在那裡找到的設定。
範例專案¶
可直接執行的範例專案下載:
https://superhightech-gitea.webredirect.org/HiNC-Deploy/DemoStandardPath/archive/master.zip
走法:打開範例專案並播放會一步一步把它放上伺服器、打開並播放。