戰(zhàn):從環(huán)境準(zhǔn)備到故障排查)
最近項(xiàng)目上要把老產(chǎn)線的監(jiān)控系統(tǒng)從組態(tài)王往 KingFusion 上遷本來(lái)以為就是一次普通的組態(tài)軟件重裝結(jié)果在 KingFusion 3.6 SP4 的安裝環(huán)節(jié)實(shí)打?qū)嵳垓v了兩天。這篇記錄把我從環(huán)境檢查到最終跑通的每一步、每一個(gè)坑都寫(xiě)清楚尤其適合正在部署 KingFusion 3.6 SP4 的自動(dòng)化工程師、系統(tǒng)集成商和工廠信息部門(mén)參考也順便把 SP4 這個(gè)版本跟老版本容易混淆的細(xì)節(jié)說(shuō)明白。內(nèi)容是圍繞我實(shí)際安裝過(guò)程展開(kāi)的工具選型和參數(shù)都是基于常見(jiàn)的生產(chǎn)環(huán)境配置你可以直接在項(xiàng)目里抄作業(yè)。1. 項(xiàng)目背景與整體設(shè)計(jì)思路1.1 為什么從組態(tài)王遷移到 KingFusion這次要上 KingFusion 的是一條中等規(guī)模的產(chǎn)線監(jiān)控系統(tǒng)現(xiàn)場(chǎng)有 3 套控制站、幾十臺(tái)設(shè)備需要集中采集 PLC 數(shù)據(jù)并做歷史存儲(chǔ)與 Web 發(fā)布。以前用的是經(jīng)典組態(tài)王單機(jī)版部署組態(tài)畫(huà)面做起來(lái)很快但到了后期問(wèn)題也明顯客戶(hù)端要在每臺(tái)電腦上裝運(yùn)行環(huán)境操作員站多了之后畫(huà)面刷新和數(shù)據(jù)庫(kù)讀寫(xiě)壓力都上來(lái)了最麻煩的是遠(yuǎn)程訪問(wèn)和移動(dòng)端查看基本靠遠(yuǎn)程桌面既不穩(wěn)定也不安全。KingFusion 是亞控的工業(yè)自動(dòng)化組態(tài)平臺(tái)跟老組態(tài)王比核心區(qū)別在架構(gòu)上它把數(shù)據(jù)采集、歷史存儲(chǔ)、Web 服務(wù)和組態(tài)開(kāi)發(fā)拆成了獨(dú)立模塊服務(wù)器端集中部署用戶(hù)端通過(guò)瀏覽器訪問(wèn)。簡(jiǎn)單說(shuō)老組態(tài)王是一機(jī)一畫(huà)面KingFusion 是一群機(jī)一張網(wǎng)。這次遷移的目標(biāo)就是把原來(lái)散在各操作站的任務(wù)收攏到一臺(tái)中心服務(wù)器上統(tǒng)一采集、統(tǒng)一存儲(chǔ)、統(tǒng)一發(fā)布后續(xù)加畫(huà)面改邏輯也只在開(kāi)發(fā)端做不影響運(yùn)行端。1.2 KingFusion 3.6 SP4 版本怎么看版本號(hào)里的 SP4 是 Service Pack 4也就是 3.6 大版本的第四個(gè)服務(wù)補(bǔ)丁包。SP 包在工業(yè)軟件里不是普通的小修復(fù)它往往攜帶了數(shù)據(jù)庫(kù)結(jié)構(gòu)變更、權(quán)限模型調(diào)整、Web 服務(wù)接口更新這些動(dòng)基礎(chǔ)的東西。我在這次安裝里最深的體會(huì)就是如果是用老版本升級(jí)上來(lái)的千萬(wàn)別跳 SP 去裝新包數(shù)據(jù)庫(kù)結(jié)構(gòu)不匹配會(huì)直接導(dǎo)致服務(wù)啟動(dòng)時(shí)報(bào)錯(cuò)甚至業(yè)務(wù)畫(huà)面數(shù)據(jù)讀取不全。我這次拿到的介質(zhì)是已經(jīng)集成了 SP4 的完整安裝包不需要先裝 3.6 基礎(chǔ)版再打補(bǔ)丁。但如果你手頭是3.6 基礎(chǔ)版 SP4 補(bǔ)丁包的組合順序就要注意先裝好基礎(chǔ)版并完成初始化再執(zhí)行補(bǔ)丁升級(jí)全程別開(kāi)著數(shù)據(jù)庫(kù)去改文件否則文件占用會(huì)導(dǎo)致部分組件更新失敗。1.3 總體部署架構(gòu)與安裝物料清單部署上我選了單服務(wù)器集中式架構(gòu)理由很簡(jiǎn)單現(xiàn)場(chǎng)規(guī)模不大不需要把采集服務(wù)、存儲(chǔ)服務(wù)、Web 服務(wù)拆到多臺(tái)機(jī)器上單臺(tái)服務(wù)器配置到位就夠了。等以后設(shè)備數(shù)量翻倍KingFusion 的服務(wù)是可以拆開(kāi)獨(dú)立部署的升級(jí)路徑是平滑的這一點(diǎn)在選型時(shí)可以提前想清楚。安裝前先列物料清單避免現(xiàn)場(chǎng)缺東西Windows Server 2019 操作系統(tǒng)介質(zhì)建議裝帶桌面體驗(yàn)的版本方便調(diào)試SQL Server 2019 數(shù)據(jù)庫(kù)安裝包生產(chǎn)環(huán)境建議用標(biāo)準(zhǔn)版以上KingFusion 3.6 SP4 安裝介質(zhì)和授權(quán)許可文件服務(wù)器固定 IP、機(jī)器名規(guī)劃以及 Web 訪問(wèn)端口號(hào)Chrome 或 Edge 瀏覽器用于訪問(wèn) Web 客戶(hù)端一臺(tái)裝有開(kāi)發(fā)客戶(hù)端的工程師站用于組態(tài)畫(huà)面修改。清單確認(rèn)完再動(dòng)服務(wù)器。這里有個(gè)非常容易踩的小坑服務(wù)器機(jī)器名如果包含下劃線或特殊字符后面的數(shù)據(jù)庫(kù)連接和站點(diǎn)綁定容易出一些莫名其妙的問(wèn)題。我裝之前直接用標(biāo)準(zhǔn)化名稱(chēng)把機(jī)器重命名了DNS 解析干凈后面省了很多事。2. 安裝前的環(huán)境檢查與準(zhǔn)備工作2.1 服務(wù)器操作系統(tǒng)與硬件配置要求KingFusion 3.6 SP4 是基于 Windows 平臺(tái)的產(chǎn)物服務(wù)器端建議直接選用 Windows Server 2016 或 2019。我這次用的是 Server 2019跟老組態(tài)王時(shí)代慣用的 Win7 比IIS 和.NET 環(huán)境更完整安全策略也合理。如果你手頭的服務(wù)器還是老掉牙的 Windows Server 2008 R2趁早別折騰直接裝新系統(tǒng)。硬件上KingFusion 這套服務(wù)端同時(shí)承擔(dān)采集、存儲(chǔ)和 Web 發(fā)布性能壓力集中在 CPU 和磁盤(pán)讀寫(xiě)上。我配置的是 8 核 16G 內(nèi)存的機(jī)器系統(tǒng)盤(pán)用的 SSD數(shù)據(jù)和數(shù)據(jù)庫(kù)目錄放在獨(dú)立的機(jī)械盤(pán)上。在這里有個(gè)個(gè)人建議歷史數(shù)據(jù)庫(kù)文件別和系統(tǒng)文件堆在一起單獨(dú)一個(gè)分區(qū)長(zhǎng)期跑下來(lái)磁盤(pán)碎片和空間管理都輕松很多。安裝之前還要檢查操作系統(tǒng)補(bǔ)丁和 .NET Framework。KingFusion 依賴(lài) .NET 4.x所以安裝介質(zhì)包里自帶的 .NET 版本如果低于系統(tǒng)需要的版本安裝程序可能會(huì)提示你先補(bǔ)環(huán)境。我習(xí)慣提前在啟用或關(guān)閉 Windows 功能里把 .NET 3.5 和 .NET 4.8 都勾上免得安裝到一半卡在環(huán)境檢測(cè)這一步。2.2 SQL Server 數(shù)據(jù)庫(kù)的準(zhǔn)備與賬號(hào)規(guī)劃KingFusion 本身不內(nèi)置數(shù)據(jù)庫(kù)它需要依賴(lài)外部 SQL Server 實(shí)例來(lái)存放組態(tài)數(shù)據(jù)、變量歷史記錄和工程元數(shù)據(jù)。這一步可以說(shuō)是安裝過(guò)程里最容易翻車(chē)的地方。我在服務(wù)器上裝了 SQL Server 2019安裝時(shí)特意選擇了混合驗(yàn)證模式Windows 身份驗(yàn)證 SQL Server 身份驗(yàn)證。為什么要混合模式主要原因是 KingFusion 的服務(wù)端程序是以 Windows 服務(wù)方式運(yùn)行的如果只開(kāi) Windows 驗(yàn)證模式服務(wù)通過(guò)本地系統(tǒng)賬號(hào)去連數(shù)據(jù)庫(kù)可能沒(méi)問(wèn)題但后面 Web 服務(wù)和客戶(hù)端連接走的是網(wǎng)絡(luò)鏈路用 SQL 賬號(hào)更直觀、更容易排查連接問(wèn)題。安裝過(guò)程中創(chuàng)建了一個(gè)獨(dú)立的登錄賬號(hào)專(zhuān)門(mén)給 KingFusion 用沒(méi)有直接給它 sa 權(quán)限后續(xù)需要建庫(kù)操作時(shí)手動(dòng)授權(quán)到 sysadmin 角色即可。一個(gè)值得注意的細(xì)節(jié)是SQL Server 默認(rèn)只有 1433 端口對(duì)外監(jiān)聽(tīng)如果服務(wù)器開(kāi)了防火墻需要確認(rèn)這個(gè)端口有沒(méi)有放行。另外我是顯式把數(shù)據(jù)庫(kù)服務(wù)的登錄模式調(diào)整為混合模式并重啟了 SQL Server 服務(wù)這一步千萬(wàn)別漏否則后面數(shù)據(jù)庫(kù)初始化工具會(huì)一直報(bào)登錄失敗。2.3 IIS 與 .NET 環(huán)境的啟用細(xì)節(jié)KingFusion 的 Web 客戶(hù)端跑在 IIS 上所以服務(wù)器必須預(yù)先裝好 IIS 組件。這一步是最容易被忽略的我在虛擬機(jī)里第一次演練時(shí)就沒(méi)裝 IIS安裝程序本身沒(méi)報(bào)錯(cuò)但等配置完站點(diǎn)去瀏覽器訪問(wèn)的時(shí)候頁(yè)面直接給我返回 403 和 500.19后來(lái)才意識(shí)到是 IIS 功能不完整。我建議在服務(wù)器管理器里把Web 服務(wù)器IIS角色啟用同時(shí)勾選這些子項(xiàng)靜態(tài)內(nèi)容、默認(rèn)文檔、ASP.NET 4.8、Windows 身份驗(yàn)證、URL 授權(quán)、HTTP 日志記錄、請(qǐng)求篩選。其中 Windows 身份驗(yàn)證經(jīng)常不在默認(rèn)安裝列表里如果漏了后面做系統(tǒng)集成登錄或者是需要走域賬號(hào)驗(yàn)證時(shí)會(huì)很不方便。IIS 裝完以后最好再確認(rèn)一下 C:\Windows\Microsoft.NET\Framework64\v4.0.30319 目錄下 Temporary ASP.NET Files 文件夾存在如果沒(méi)有可以手動(dòng)創(chuàng)建并給 IIS_IUSRS 用戶(hù)加上讀寫(xiě)權(quán)限這是 ASP.NET 運(yùn)行臨時(shí)編譯文件的目錄少了它 Web 站點(diǎn)的頁(yè)面會(huì)一直報(bào)未能加載文件或程序集的異常。2.4 安裝目錄與端口規(guī)劃安裝目錄不要選系統(tǒng)分區(qū)默認(rèn)路徑。KingFusion 有日志文件、發(fā)布文件、臨時(shí)緩存這些文件長(zhǎng)期運(yùn)行會(huì)產(chǎn)生大量碎片和可觀的體積。我這次把程序裝到 D:\KingFusion數(shù)據(jù)庫(kù)文件放在 E:\SQLData日志文件目錄也是單列。生產(chǎn)環(huán)境這樣規(guī)劃后續(xù)清理和遷移都很友好。端口這塊要提前統(tǒng)一。IIS 默認(rèn)盯的是 80 端口但很多服務(wù)器上往往已經(jīng)掛了別的 Web 服務(wù)或者被其他應(yīng)用程序占用。我這次直接把 KingFusion 的 Web 站點(diǎn)綁定到 8088 端口固定下來(lái)之后在防火墻上放行之后所有客戶(hù)端訪問(wèn)地址就是 http://服務(wù)器IP:8088。端口規(guī)劃的原則是避開(kāi)常見(jiàn)高危端口、避開(kāi)已占用端口、留好記憶點(diǎn)就行。如果現(xiàn)場(chǎng)服務(wù)器有硬件防火墻或安全組策略記得在安裝之前就把 TCP 8088 和 SQL Server 1433 放行免得到最后一步全部配置完成卻連不上頁(yè)面排查方向還容易跑偏到授權(quán)和配置上。3. 逐步實(shí)操KingFusion 3.6 SP4 安裝全過(guò)程3.1 服務(wù)端程序的安裝與組件選擇介質(zhì)放進(jìn)光驅(qū)或者解壓出來(lái)之后雙擊 setup 啟動(dòng)安裝向?qū)?。安裝界面第一步會(huì)讓選擇安裝類(lèi)型或組件常見(jiàn)的有服務(wù)器端、開(kāi)發(fā)客戶(hù)端、運(yùn)行客戶(hù)端。我這里只勾選了服務(wù)器端組件。有一個(gè)經(jīng)驗(yàn)值得單獨(dú)拎出來(lái)說(shuō)如果是單機(jī)全部安裝很多安裝包默認(rèn)會(huì)勾選全部但我不推薦這么干。開(kāi)發(fā)客戶(hù)端和服務(wù)器裝在同一個(gè)臺(tái)機(jī)器上方便是方便但生產(chǎn)環(huán)境原則上開(kāi)發(fā)工具和運(yùn)行環(huán)境盡量分離避免工程師在服務(wù)器上改畫(huà)面時(shí)影響實(shí)時(shí)數(shù)據(jù)采集。所以我這臺(tái)服務(wù)器上只裝了服務(wù)端組態(tài)開(kāi)發(fā)的活放到獨(dú)立的工程師站電腦上。安裝過(guò)程的時(shí)長(zhǎng)取決于機(jī)器性能正常大約 10 到 20 分鐘。安裝完成后程序目錄會(huì)生成主程序、WebSite 目錄、日志目錄等關(guān)鍵子文件夾。此時(shí)先別急著啟動(dòng)任何服務(wù)下一步數(shù)據(jù)庫(kù)初始化才是重頭戲。3.2 數(shù)據(jù)庫(kù)初始化和 SP4 升級(jí)腳本的執(zhí)行KingFusion 首次安裝必須執(zhí)行數(shù)據(jù)庫(kù)初始化。安裝程序自帶一個(gè)數(shù)據(jù)庫(kù)配置工具界面里要填寫(xiě)數(shù)據(jù)庫(kù)服務(wù)器地址、端口、登錄賬號(hào)。確認(rèn)無(wú)誤后點(diǎn)初始化程序會(huì)自動(dòng)創(chuàng)建一組以 KF 開(kāi)頭的業(yè)務(wù)數(shù)據(jù)庫(kù)這些庫(kù)承載工程配置、實(shí)時(shí)值存儲(chǔ)、歷史歸檔與報(bào)警記錄。我在初始化的時(shí)候遇到過(guò)一次連接失敗排查下來(lái)是 SQL Server 服務(wù)還沒(méi)徹底啟動(dòng)完服務(wù)起來(lái)和實(shí)例監(jiān)聽(tīng)端口之間有兩三秒的窗口期。這種問(wèn)題重啟一下數(shù)據(jù)庫(kù)服務(wù)或者等十幾秒再點(diǎn)一次就可以了。初始化成功之后數(shù)據(jù)庫(kù)里會(huì)多出若干 KF 前綴的庫(kù)為了保險(xiǎn)起見(jiàn)我把這幾個(gè)庫(kù)手動(dòng)做了一次完全備份防止后續(xù)操作誤刪數(shù)據(jù)。如果是從舊版本升級(jí)到 SP4初始化工具會(huì)檢測(cè)現(xiàn)有數(shù)據(jù)庫(kù)的版本并提示需要執(zhí)行升級(jí)腳本。升級(jí)前務(wù)必把原有數(shù)據(jù)庫(kù)完整備份一份這一步不是流程冗余是真的救過(guò)命。我之前升級(jí)一個(gè)測(cè)試環(huán)境就遇到過(guò)升級(jí)腳本在中途因?yàn)橹麈I重復(fù)而中斷如果沒(méi)有備份整個(gè)庫(kù)結(jié)構(gòu)就處于半新版半舊版的危險(xiǎn)狀態(tài)進(jìn)退兩難。3.3 Web 站點(diǎn)配置與 IIS 發(fā)布數(shù)據(jù)庫(kù)初始化完成后安裝向?qū)б话銜?huì)引導(dǎo)配置 IIS 站點(diǎn)或提供獨(dú)立的 Web 發(fā)布配置工具。在實(shí)際操作中我傾向于手動(dòng)在 IIS 里建站點(diǎn)因?yàn)榭煽匦愿咭卜奖悴槿罩尽2僮髀窂绞谴蜷_(kāi) IIS 管理器新建網(wǎng)站物理路徑指向 D:\KingFusion 下的 WebSite 目錄端口填寫(xiě)規(guī)劃好的 8088主機(jī)名不填寫(xiě)允許所有 IP 訪問(wèn)。應(yīng)用池使用默認(rèn)的 .NET v4.0 集成模式即可如果安裝程序默認(rèn)設(shè)置了經(jīng)典模式建議改成集成模式否則部分 POST 請(qǐng)求和 Web API 調(diào)用會(huì)出兼容問(wèn)題。站點(diǎn)建好之后需要設(shè)置應(yīng)用池的身份權(quán)限。KingFusion 的 Web 服務(wù)需要讀取數(shù)據(jù)庫(kù)和本地文件所以應(yīng)用池身份至少要有對(duì) WebSite 目錄的讀取權(quán)限。最常見(jiàn)的問(wèn)題是 IIS 默認(rèn)身份對(duì)安裝目錄沒(méi)有訪問(wèn)權(quán)限頁(yè)面打開(kāi)直接報(bào) 500.19 或者權(quán)限錯(cuò)誤。我直接把 WebSite 目錄的安全選項(xiàng)里加上 IIS_IUSRS 用戶(hù)的讀取權(quán)限問(wèn)題就消失了。配置完成后先在服務(wù)器本機(jī)訪問(wèn) http://localhost:8088 驗(yàn)證頁(yè)面如果能正常打開(kāi)登錄頁(yè)再放開(kāi)防火墻訪問(wèn)限制。順便提一句首次訪問(wèn)登錄頁(yè)如果長(zhǎng)時(shí)間加載不出內(nèi)容多半是數(shù)據(jù)庫(kù)服務(wù)沒(méi)啟動(dòng)或者 Web 配置里的連接字符串指向了錯(cuò)誤的數(shù)據(jù)庫(kù)實(shí)例。3.4 開(kāi)發(fā)端與運(yùn)行端客戶(hù)端的安裝服務(wù)端跑通之后工程師站需要安裝開(kāi)發(fā)客戶(hù)端。開(kāi)發(fā)客戶(hù)端是用于組態(tài)設(shè)計(jì)、變量定義、畫(huà)面繪制的工具功能相當(dāng)于畫(huà)圖 配置 腳本編輯的集合體。運(yùn)行客戶(hù)端則是操作員站或者領(lǐng)導(dǎo)查看站用的界面簡(jiǎn)潔不支持工程修改主要用來(lái)看畫(huà)面、操作按鈕、查趨勢(shì)報(bào)表。在工程師站上雙擊安裝程序選擇開(kāi)發(fā)客戶(hù)端組件安裝過(guò)程基本是下一步到底。安裝完成后首次打開(kāi)開(kāi)發(fā)工具需要填寫(xiě)要連接的服務(wù)端地址和端口如果服務(wù)端配置正確就能加載到服務(wù)器上的工程列表。運(yùn)行客戶(hù)端的安裝更輕量瀏覽器本身就是運(yùn)行環(huán)境不需要額外裝程序直接訪問(wèn)服務(wù)器地址就行。這跟老組態(tài)王一個(gè)站點(diǎn)裝一套運(yùn)行環(huán)境的做法完全不一樣新建操作員站的成本幾乎為零這也是這次遷移中我最滿(mǎn)意的地方。3.5 授權(quán)導(dǎo)入與 License 激活KingFusion 安裝完成并不意味著能用還要導(dǎo)入授權(quán)。授權(quán)通常有加密狗和授權(quán)文件兩種形式現(xiàn)在的項(xiàng)目現(xiàn)場(chǎng)為了方便大多采用機(jī)器碼綁定的離線授權(quán)文件。操作過(guò)程不復(fù)雜在服務(wù)器的授權(quán)管理工具里查看到本機(jī)機(jī)器碼把機(jī)器碼發(fā)給廠家生成對(duì)應(yīng)的授權(quán)文件之后在授權(quán)管理界面導(dǎo)入即可。這里有個(gè)非常容易踩的暗坑服務(wù)器系統(tǒng)時(shí)間如果不是標(biāo)準(zhǔn)的北京時(shí)間授權(quán)激活很大概率會(huì)失敗提示時(shí)間無(wú)效或者授權(quán)異常。我開(kāi)始沒(méi)注意時(shí)區(qū)設(shè)置導(dǎo)入授權(quán)之后客戶(hù)端一直提示未授權(quán)查了半天才發(fā)現(xiàn)是服務(wù)器 UTC 時(shí)間偏差了幾個(gè)小時(shí)同步時(shí)間后重新導(dǎo)入立刻正常。授權(quán)文件導(dǎo)入完畢后最好重啟一次全部 KingFusion 相關(guān)服務(wù)確保授權(quán)狀態(tài)被重新讀取。設(shè)備數(shù)量、并發(fā)點(diǎn)數(shù)、功能模塊這些信息都能在授權(quán)管理界面看到建議把授權(quán)內(nèi)容截圖存檔方便后續(xù)核驗(yàn)。4. 安裝中的坑與排查技巧實(shí)錄4.1 數(shù)據(jù)庫(kù)登錄反復(fù)失敗的排查安裝過(guò)程中我遇到的最典型問(wèn)題就是數(shù)據(jù)庫(kù)初始化工具提示登錄失敗。這種情況常見(jiàn)原因排前三的分別是SQL Server 服務(wù)沒(méi)啟動(dòng)、登錄模式還是 Windows 驗(yàn)證、防火墻阻斷了 1433 端口。排查時(shí)可以打開(kāi) SQL Server Management Studio先用 SQL 賬號(hào)手動(dòng)本地連接試試。如果本地能連、但 KingFusion 工具連接報(bào)錯(cuò)就要檢查連接字符串里填的數(shù)據(jù)庫(kù)實(shí)例名格式是不是漏了端口或者機(jī)器名帶上了域前綴。我在現(xiàn)場(chǎng)遇到過(guò)一次實(shí)例名寫(xiě)成了服務(wù)器名\SQLEXPRESS但實(shí)際裝的是默認(rèn)實(shí)例改成服務(wù)器名就好了。這種低級(jí)錯(cuò)誤最容易在忙碌時(shí)反復(fù)發(fā)生建議初始化工具的每一項(xiàng)都截圖留檔。4.2 Web 頁(yè)面 403 和 500.19 的處理第一次配置完 IIS 站點(diǎn)打開(kāi)瀏覽器訪問(wèn)時(shí)頁(yè)面直接給我來(lái)了一個(gè) 500.19 錯(cuò)誤。這個(gè)錯(cuò)誤本質(zhì)上是 IIS 讀取配置文件時(shí)權(quán)限不足或者是配置節(jié)被鎖定了。排查時(shí)先看事件查看器Windows 日志里的詳細(xì)信息比瀏覽器頁(yè)面準(zhǔn)確得多。我處理的辦法很直接先檢查 WebSite 目錄的 NTFS 權(quán)限把 IIS_IUSRS 的讀取權(quán)限加上再看 IIS 的功能是否啟用了 ASP.NET。如果 403 錯(cuò)誤則通常是默認(rèn)文檔沒(méi)有配置網(wǎng)站根目錄下的默認(rèn)登錄頁(yè)沒(méi)有被 IIS 正確識(shí)別。在 IIS 站點(diǎn)的默認(rèn)文檔里手動(dòng)添加上 index.html 或 Default.aspx 這類(lèi)名稱(chēng)就好。這個(gè)過(guò)程中有個(gè)重要原則在 IIS 里改了綁定端口或物理路徑之后不要只刷瀏覽器一定要重啟一下應(yīng)用池很多緩存問(wèn)題通過(guò)重啟應(yīng)用池能直接消失比自己瞎查節(jié)省半小時(shí)。4.3 端口沖突與服務(wù)啟動(dòng)不起來(lái)的情況安裝后服務(wù)端可能包含多個(gè) Windows 服務(wù)比如數(shù)據(jù)采集服務(wù)、數(shù)據(jù)處理服務(wù)、Web 輔助服務(wù)等。如果服務(wù)啟動(dòng)后馬上停止先別卸載重裝去安裝目錄下的日志文件夾翻啟動(dòng)日志。我在測(cè)試環(huán)境就遇到過(guò)一個(gè)服務(wù)起不來(lái)的情況原因是數(shù)據(jù)庫(kù)連接配置里 sa 賬號(hào)密碼被改了但服務(wù)配置里的連接字符串沒(méi)刷新啟動(dòng)時(shí)連不上庫(kù)服務(wù)自動(dòng)退出。端口沖突一般體現(xiàn)在 Web 服務(wù)上。服務(wù)器如果之前裝過(guò)其他 Web 組件8088 被占用時(shí) IIS 啟動(dòng)站點(diǎn)會(huì)直接報(bào)錯(cuò)。排查端口占用用命令 netstat -ano | findstr 8088找到占用進(jìn)程的 PID再去任務(wù)管理器里看是哪個(gè)程序占用。能停則停不能停就改 KingFusion 的站點(diǎn)端口改完記得同步修改防火墻規(guī)則。4.4 客戶(hù)端連不上服務(wù)端的定位方法所有服務(wù)端配置完成、本地訪問(wèn)正常之后客戶(hù)端仍然連不上這問(wèn)題基本集中在網(wǎng)絡(luò)層面。先從客戶(hù)端機(jī)器上用瀏覽器訪問(wèn) http://服務(wù)器IP:8088如果打不開(kāi)依次檢查雙方網(wǎng)絡(luò)能否互通ping 服務(wù)器 IP、防火墻是否放行 8088、服務(wù)器本身是否有對(duì)外網(wǎng)卡綁定。如果瀏覽器能打開(kāi)登錄頁(yè)但登錄成功后提示連接服務(wù)失敗大概率是客戶(hù)端解析服務(wù)端地址有問(wèn)題或者在配置客戶(hù)端時(shí)填的服務(wù)器地址用了機(jī)器名而 DNS 解析不到。我在實(shí)踐里統(tǒng)一用 IP 地址來(lái)填局域網(wǎng)內(nèi)部沒(méi)有 DNS 的情況下這是最穩(wěn)的。5. 部署驗(yàn)證與運(yùn)維注意事項(xiàng)5.1 安裝完成后的功能點(diǎn)檢清單所有服務(wù)啟動(dòng)正常、網(wǎng)頁(yè)能登錄之后別急著宣告勝利。我習(xí)慣按清單逐項(xiàng)過(guò)一遍確認(rèn)業(yè)務(wù)功能真實(shí)可用用管理員賬號(hào)登錄 Web 客戶(hù)端檢查主界面能否正常加載打開(kāi)工程畫(huà)面確認(rèn)實(shí)時(shí)數(shù)據(jù)有刷新數(shù)據(jù)庫(kù)讀寫(xiě)無(wú)報(bào)錯(cuò)建立一條模擬報(bào)警確認(rèn)報(bào)警頁(yè)面能實(shí)時(shí)彈出并記錄查一下歷史曲線確認(rèn)歷史數(shù)據(jù)能正常歸檔與回放用另一個(gè)賬號(hào)比如操作員賬號(hào)同時(shí)登錄模擬多用戶(hù)并發(fā)訪問(wèn)觀察頁(yè)面響應(yīng)是否正常服務(wù)器重啟一遍確認(rèn)所有 KingFusion 服務(wù)都能自動(dòng)啟動(dòng)。這一步檢查的價(jià)值在于很多安裝問(wèn)題不是立刻暴露的而是運(yùn)行幾個(gè)小時(shí)之后才慢慢浮現(xiàn)。比如歷史歸檔數(shù)據(jù)丟掉、Web 頁(yè)面定時(shí)刷新卡頓這些都需要提前壓測(cè)才能發(fā)現(xiàn)。5.2 日常運(yùn)維與備份建議KingFusion 上線后的運(yùn)維重點(diǎn)我認(rèn)為前三名是備份、監(jiān)控和補(bǔ)丁管理。數(shù)據(jù)庫(kù)必須做完整的定期備份計(jì)劃尤其是 KF 開(kāi)頭的配置庫(kù)和歷史庫(kù)。歷史庫(kù)天天在增長(zhǎng)我建議磁盤(pán)寫(xiě)滿(mǎn)之前做一次容量評(píng)估不要等站點(diǎn)無(wú)法寫(xiě)入才開(kāi)始處理。服務(wù)器時(shí)間建議做 NTP 自動(dòng)同步不僅影響授權(quán)還影響報(bào)警時(shí)間戳和數(shù)據(jù)準(zhǔn)確性。日志文件也需要定期清理KingFusion 的服務(wù)日志在生產(chǎn)環(huán)境會(huì)迅速積累尤其是在采集通道頻繁重啟或異常的時(shí)候幾天能留下幾個(gè) GB 的日志建議寫(xiě)個(gè)計(jì)劃任務(wù)定期歸檔清理。補(bǔ)丁升級(jí)要克制。生產(chǎn)環(huán)境上能不動(dòng)就盡量別動(dòng)如果確實(shí)需要升級(jí)先在測(cè)試環(huán)境完整演練一遍流程再挑停機(jī)窗口操作。這個(gè)教訓(xùn)是我花錢(qián)買(mǎi)來(lái)的也是這次安裝記錄里最想強(qiáng)調(diào)的一點(diǎn)。安裝整個(gè)流程走下來(lái)我最大的體會(huì)是環(huán)境準(zhǔn)備花掉的精力決定了后面所有步驟的順利程度數(shù)據(jù)庫(kù)和 IIS 這兩塊配置越規(guī)范后面越省事。還有一個(gè)小技巧裝完之后可以在服務(wù)器桌面上把每個(gè)服務(wù)的名稱(chēng)、端口、數(shù)據(jù)庫(kù)實(shí)例名、授權(quán)截止日期全部寫(xiě)在一張便簽上別嫌麻煩三個(gè)月之后你回來(lái)維護(hù)的時(shí)候會(huì)發(fā)現(xiàn)這張便簽比啥文檔都好使。