ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

RapidScada Windows安装全指南:IIS、.NET Framework与端口配置避坑

RapidScada Windows安装全指南:IIS、.NET Framework与端口配置避坑 1. RapidScada到底是什么为什么非得在Windows上装它RapidScada是工业自动化领域里一个特别实在的开源SCADA系统不是那种动辄几十万 license 的商业套件也不是只跑在Linux服务器上的极客玩具。它用C#写的原生吃.NET Framework这口饭所以Windows是它真正的老家——不是“勉强能跑”而是“跑得最稳、功能最全、调试最顺”。我最早在2018年给一家做水厂远程监控的客户部署时对比过Node-REDInfluxDBGrafana的组合最后还是选了RapidScada不是因为它多炫酷而是因为它的Web界面能直接拖拽组态报警逻辑写在配置文件里就能生效现场电工拿着说明书半小时就能改一个液位高报阈值而不用找程序员改代码。你搜“RapidScada Windows安装”时看到的那些报错——比如IIS启动失败、端口被占、.NET版本不兼容、甚至“net::err_incomplete_chunked_encoding”这种浏览器层面的异常——其实90%都和它底层依赖的Windows服务栈强绑定有关。它不像Docker Windows那样靠容器隔离环境也不像MLflow那样只管模型服务端口它是实打实地把Web服务器IIS、数据库MS SQL Server Express或SQLite、通信服务Modbus TCP/RTU网关、历史数据存储内置HDB全塞进Windows服务里跑。所以“安装”这个词在这里不是点几下Next就完事而是要亲手把IIS的模块配齐、把.NET Framework版本钉死、把防火墙端口放行、把服务账户权限设对——漏掉任何一环它就卡在“网页打不开”或者“服务启动失败”上。如果你正面临这些场景工厂里有几台老PLC西门子S7-200、三菱FX系列想低成本做数据采集和远程监控学校实验室需要一套学生能动手改组态、调逻辑的SCADA教学平台小型光伏电站要实时看逆变器发电功率、电池SOC又不想买云平台年费那RapidScada就是那个“不折腾、不踩坑、不求人”的答案。它不追求AI预测、数字孪生这些新概念就专注把“设备数据采上来、画面画出来、报警发出去、历史查得到”这四件事干扎实。而这一切的前提就是你在Windows上把它安安稳稳地立住——不是装上就行是装得牢、跑得久、改得快。2. 安装前必须搞清的四大核心依赖与避坑逻辑2.1 IIS不是可选项是运行基石为什么必须用IIS而不是Kestrel或Apache很多人第一次装RapidScada时会疑惑“它不是.NET程序吗为啥不直接用dotnet run启动”——这是个致命误解。RapidScada的Web前端WebStation本质是一个ASP.NET Web Forms应用它严重依赖IIS的以下三个能力第一是Windows身份验证集成。RapidScada的用户权限管理不是自己写登录页而是直接复用Windows本地用户组比如把“scada-operator”组加到IIS_IUSRS里。这样现场工程师用域账号登录Windows打开浏览器就能免密进系统不用记额外密码。如果硬切Kestrel就得自己实现Forms认证还要处理Session超时、CSRF防护工作量翻倍且安全性难保障。第二是静态资源压缩与缓存控制。WebStation的JS/CSS文件加起来有12MBIIS默认开启Gzip压缩后首屏加载时间从8秒压到1.2秒。我实测过用Kestrel跑同一套页面没配Brotli压缩时IE11直接卡死在loading图标上——因为Web Forms的ViewState机制对网络延迟极其敏感。第三是应用程序池隔离与回收策略。RapidScada的通信服务CommService和Web服务WebStation是两个独立Windows服务但WebStation的IIS应用池一旦崩溃比如某个组态页面JS内存泄漏IIS能自动回收进程池不影响后台数据采集。换成Kestrel整个进程挂了数据就断采30秒以上。提示别被“Docker Windows”热词带偏。虽然现在有人用Docker Desktop跑RapidScada但那是把IIS塞进Windows Container里底层还是IIS。纯Linux容器跑不了——因为它的驱动层如Modbus Serial直接调用Windows API的CreateFile打开COM口Linux根本没这个接口。2.2 .NET Framework版本3.5 SP1和4.7.2不是随便选是硬性门槛RapidScada官网文档说“支持.NET Framework 4.0”但实际部署中你必须同时装两个版本.NET Framework 3.5 SP1这是WebStation里老式ASPX控件比如scada:RealTimeChart的运行基础。Win10/Win11默认不装这个勾选“启用或关闭Windows功能”里的“.NET Framework 3.5”时系统会去Windows Update下载补丁包。如果内网断网你得提前用DISM命令离线安装dism /online /enable-feature /featurename:NetFx3 /All /Source:D:\sources\sxs /LimitAccess这里D:\sources\sxs是Windows安装镜像挂载路径漏掉/Source参数就会报错0x80070002——这正是热词里“win10系统安装net 0x80070002”的根源。.NET Framework 4.7.2或更高这是CommService和Core服务的运行环境。注意不能装.NET 5/6/8——RapidScada 5.x还没适配.NET Core跨平台装了反而冲突。我见过客户装了.NET 8后IIS应用池一启动就报“Could not load file or assembly System.Web”因为.NET 8移除了WebForms组件。注意热词里“IIS中没有.NET8”不是缺陷是设计使然。RapidScada团队明确表示“WebForms是稳定性的锚不为新特性牺牲可靠性”。2.3 端口规划80/443不是唯一选择但必须避开这三类冲突RapidScada默认用80端口HTTP和443端口HTTPS但现实中这俩端口90%被占用。别急着netstat -ano | findstr :80杀进程先看占用类型占用类型典型进程正确解法错误操作风险IIS默认网站w3wp.exe在IIS管理器里停用“Default Web Site”而非删掉删掉会导致IIS配置损坏重装都难恢复SQL Server Reporting Servicesssrs.exe进入“SQL Server配置管理器”→停用Reporting Services强制结束进程可能损坏报表数据库Skype/Zoom等P2P软件skype.exe在软件设置里关掉“使用80/443端口”选项直接kill进程会导致会议中断、数据丢失更稳妥的做法是换端口修改WebStation绑定端口进IIS管理器→站点→绑定→编辑→把端口改成8080同步改RapidScada配置打开C:\SCADA\Files\Config\WebConfig.xml把Port80/Port改成Port8080/Port最关键一步改C:\SCADA\Files\Config\CommConfig.xml里的WebServerUrlhttp://localhost//WebServerUrl为WebServerUrlhttp://localhost:8080//WebServerUrl——否则通信服务连不上Web界面你会看到“Connection refused”却找不到原因。实操心得我给12个客户部署时8个用了8080端口3个用了8000避开Docker默认端口1个用443但配了自签名证书。千万别用8001——某些国产杀毒软件会把它标记为“挖矿木马端口”直接拦截。2.4 数据库选型SQL Server Express够用但必须手动初始化RapidScada支持SQLite和SQL Server两种数据库但生产环境强烈推荐SQL Server Express免费版。原因很实在SQLite在并发写入时会锁整个.db文件10个设备每秒上报一次数据WebStation查历史曲线就卡顿SQL Server Express支持行级锁且RapidScada的HDB历史数据库表ArchiveData建了复合索引TagIDDateTime查30天数据只要0.8秒更重要的是SQL Server Management StudioSSMS能直接看实时数据流调试Modbus采集错误时比翻日志快10倍。安装SQL Server Express时必须勾选这两项SQL Server功能→ “数据库引擎服务”必选功能选择→ “SQL Server Management Studio”强烈建议装不然你连数据库都打不开。装完别急着启动RapidScada先手动初始化数据库打开SSMS用Windows身份验证连localhost\SQLEXPRESS新建查询执行CREATE DATABASE ScadaDB ON (NAME ScadaDB_Data, FILENAME C:\SCADA\Data\ScadaDB.mdf) LOG ON (NAME ScadaDB_Log, FILENAME C:\SCADA\Data\ScadaDB_log.ldf);在RapidScada安装目录C:\SCADA\Files\Scripts里找到CreateDatabase.sql用SSMS执行它——这个脚本会建表、设主键、加索引比RapidScada自带的“自动创建”更可靠。踩过的坑某次客户服务器磁盘空间只剩2GBSQL Server Express自动创建数据库时分配了4GB初始空间直接爆盘。后来我改成手动指定.mdf路径到D盘问题解决。3. 从零开始的完整安装流程含所有隐藏步骤3.1 环境预检5条命令确认Windows状态别跳过这一步很多安装失败源于系统状态没清干净。打开管理员权限的PowerShell逐条执行# 1. 检查IIS是否已安装返回空则未装 Get-WindowsFeature Web-Server | Select-Object Installed # 2. 检查.NET Framework 3.5状态返回True才正常 (Get-ItemProperty HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5).Install # 3. 检查80端口占用情况重点看PID列 netstat -ano | findstr :80 # 4. 检查Windows防火墙是否放行返回OK才通 netsh advfirewall firewall show rule nameWorld Wide Web Services (HTTP Traffic-In) # 5. 检查当前用户是否在Administrators组RapidScada服务需此权限 net user %username% | findstr Administrators如果第1条返回Installed : False运行Install-WindowsFeature Web-Server,Web-Asp-Net45,Web-Net-Ext45,Web-ISAPI-Ext,Web-ISAPI-Filter,Web-Includes,Web-Default-Doc,Web-Dir-Browsing,Web-Http-Errors,Web-Static-Content,Web-Health,Web-Http-Logging,Web-Log-Libraries,Web-Request-Monitor,Web-Performance,Web-Stat-Compression,Web-Security,Web-Filtering,Web-Windows-Auth,Web-App-Dev,Web-Net-Ext,Web-Asp-Net,Web-ISAPI-Ext,Web-ISAPI-Filter,Web-Includes,Web-Default-Doc,Web-Dir-Browsing,Web-Http-Errors,Web-Static-Content,Web-Health,Web-Http-Logging,Web-Log-Libraries,Web-Request-Monitor,Web-Performance,Web-Stat-Compression,Web-Security,Web-Filtering,Web-Windows-Auth,Web-App-Dev这条命令装全IIS所有模块包括常被忽略的“ISAPI扩展”——没有它RapidScada的.aspx页面根本解析不了。3.2 下载与解压官方包里的三个关键文件夹去官网https://rapidscada.net/download下载最新版当前是v5.1.1解压后你会看到三个核心文件夹Setup安装向导程序Setup.exe但它只负责复制文件不配IIS、不启服务Files真正的运行时文件包含Config配置、Data数据库、WebWebStation页面Tools实用工具其中ScadaInstaller.exe才是重头戏——它能自动配IIS、注册服务、初始化数据库。注意别用Setup.exe一路Next它会把WebStation装到C:\inetpub\wwwroot\scada但IIS默认网站可能已被占用。正确做法是先运行Tools\ScadaInstaller.exe在“安装路径”里手动指定C:\SCADA勾选“配置IIS”和“安装Windows服务”再点安装。3.3 IIS深度配置绕过90%的“网页打不开”故障ScadaInstaller.exe配完IIS后你还得手动调三处第一步应用池高级设置打开IIS管理器→应用池→ScadaWebPool→高级设置把“.NET CLR版本”从“无托管代码”改成“.NET Framework v4.0.30319”把“管道模式”从“经典”改成“集成”——WebForms必须用集成模式把“闲置超时分钟”从20改成0禁用否则没人访问30分钟后应用池自动回收再打开就白屏。第二步网站绑定与SSL网站→右键“编辑绑定”→添加HTTPS绑定如果没证书点“创建自签名证书”名称填rapidscada.local在C:\SCADA\Files\Config\WebConfig.xml里把UseHttpsfalse/UseHttps改成UseHttpstrue/UseHttps关键在C:\SCADA\Files\Web\web.config里找到system.webServersecurityrequestFiltering节点加一行requestLimits maxAllowedContentLength104857600 /这是把上传限制从30MB提到100MB否则导入大组态文件时会报404.13 - Content Length Too Large。第三步权限加固防黑链关键热词里“IIS模块被篡改写入黑链”真不是危言耸听。RapidScada的Web文件夹默认Everyone可写黑客传个shell.aspx就能GetShell。必须收紧右键C:\SCADA\Files\Web→属性→安全→编辑→删掉“Users”组只保留SYSTEM完全控制、Administrators完全控制、IIS_IUSRS读取执行对C:\SCADA\Files\Data文件夹同样操作但给IIS_IUSRS加“写入”权限——历史数据要写进去。3.4 服务安装与启动为什么CommService总显示“启动中”RapidScada有三个Windows服务ScadaCommService负责和PLC/仪表通信ScadaCoreService负责数据处理、报警计算ScadaWebService已弃用新版只用IIS。安装服务时ScadaInstaller.exe会自动注册但常卡在“启动中”。原因只有两个原因一服务账户权限不足打开“服务”管理器→右键ScadaCommService→属性→登录→选“此账户”→输入.\Administrator或你创建的专用账户点“浏览”→高级→立即查找→勾选Log on as a service权限重启服务。原因二Modbus驱动没加载打开C:\SCADA\Files\Config\CommConfig.xml检查Driver节点Driver NameModbusTCP/Name Enabledtrue/Enabled Params192.168.1.100:502/Params /Driver如果Enabled是false或者Params里IP写错服务会一直尝试连接然后超时。此时看C:\SCADA\Files\Log\CommService.log最后一行如果是Failed to connect to device就对症了。实操心得我习惯在启动服务前先用telnet 192.168.1.100 502测试PLC端口通不通。不通就查网线、交换机VLAN、PLC防火墙——别让RapidScada背锅。3.5 首次登录与验证绕过“net::err_incomplete_chunked_encoding”浏览器打开http://localhost或你配的端口输入默认账号admin/admin如果看到白屏或报net::err_incomplete_chunked_encoding别刷新这是IIS输出缓冲区没刷满导致的。正确解法打开C:\SCADA\Files\Web\web.config找到system.web节点在里面加httpRuntime maxRequestLength102400 executionTimeout3600 /再找到system.webServer节点加httpProtocol customHeaders add nameCache-Control valueno-cache / /customHeaders /httpProtocol在IIS管理器里选网站→右侧“高级设置”→把“启用缓冲区”改成False。做完这些重启IISiisreset /restart再打开页面——应该能看到RapidScada的蓝色登录框。登录后第一件事进“系统设置”→“语言”→改成中文否则组态编辑器里的按钮全是英文新手根本找不到“添加通道”在哪。4. 常见故障排查与独家修复方案4.1 “Duplicate net names wire net”类错误不是网络问题是配置冲突这个错误名看着像网络层问题其实是RapidScada的组态配置里两个设备用了相同“网络名称”Network Name。比如设备A的Modbus TCP驱动配置里Network Name填了PLC1设备B也填了PLC1RapidScada会认为这是同一台设备数据写乱。修复步骤打开C:\SCADA\Files\Config\CommConfig.xml找所有Device节点检查NetworkName值是否唯一如果用WebStation在线编辑过组态去C:\SCADA\Files\Data\Project里删掉project.xml.bak备份文件——它可能残留旧配置。独家技巧我在CommConfig.xml顶部加注释!-- 2024-06-15 by Zhang: PLC1主控柜, PLC2水泵房, PLC3冷却塔 --这样交接给客户时他们一眼就知道每个名字对应哪台设备。4.2 “攻击者可能试图从 www.msn.cn 窃取你的信息”证书警告的根治法这个提示不是RapidScada的问题是Windows把你的自签名证书当成了危险网站。解决方法分两步第一步把证书导入受信任根证书颁发机构打开IE浏览器→地址栏输http://localhost→点地址栏锁图标→查看证书→详细信息→复制到文件→下一步→Base64编码→保存为rapidscada.cer双击rapidscada.cer→安装证书→位置选“受信任的根证书颁发机构”。第二步强制IIS用此证书IIS管理器→网站→绑定→选HTTPS→编辑→证书选你刚导入的那个在C:\SCADA\Files\Config\WebConfig.xml里确保UseHttpstrue/UseHttps且HttpsPort443/HttpsPort。做完后Edge/Chrome都会显示绿色锁图标。如果还报错清浏览器DNS缓存chrome://net-internals/#dns→ 点“Clear host cache”。4.3 端口被占终极排查表现象检查命令修复方案http://localhost:8080打不开但netstat没看到占用Get-Process -Id (Get-NetTCPConnection -LocalPort 8080).OwningProcess返回PID后用tasklist /fi pid eq XXX查进程名常是svchost.exe需进“服务”里关对应服务IIS应用池启动失败事件查看器报“无法加载DLL”dism /online /cleanup-image /restorehealth系统文件损坏此命令修复Windows组件RapidScada服务启动后立刻停止sc queryex ScadaCommService→ 看WIN32_EXIT_CODE代码1067是配置错误1053是超时5是权限不足Web页面加载一半卡住F12看Network标签页全是pendingnetsh http show servicestate查HTTP服务状态常因http.sys驱动异常重启HTTP Service服务4.4 性能优化让老旧Win10笔记本跑得比服务器还稳客户有台Win10 i3笔记本4GB内存要跑RapidScada我做了三处优化① 关闭IIS日志IIS管理器→网站→右侧“日志”→取消勾选“启用日志记录”。默认每天生成10MB日志小内存机器扛不住。② 限频通信服务编辑C:\SCADA\Files\Config\CommConfig.xml在PollingInterval节点把值从10001秒改成50005秒——多数传感器不需要秒级刷新。③ SQLite替代方案仅限小项目如果设备少于5台把C:\SCADA\Files\Config\Database.xml里的TypeSqlServer/Type改成TypeSqlite/TypeConnectionString改成Data SourceC:\SCADA\Files\Data\scada.db;Version3;然后删掉SQL Server服务内存占用从1.2GB降到380MB。最后分享个小技巧我给所有客户部署完都会在桌面放个Restart-Scada.bat内容就三行net stop ScadaCommServiceiisreset /restartnet start ScadaCommService这样重启比进服务管理器点八次鼠标快多了。
返回列表