AV License Server — 手册 v26.10.28.0 ← 返回 AV License Server
English Italiano Français Deutsch Español 中文 日本語

AV License Server — 手册

┌─────────────────────────────┐ │ Server PC │ │ │ │ AV_LicenseServer.exe │ ← Windows Service, always running │ (listens on the network, │ │ default TCP port 7788) │ │ │ │ AV_LicenseManager.exe │ ← opened only to administer it │ (Service / Licenses) │ │ │ │ AV_LicenseServer.ini │ ← configuration │ Code.txt │ ← activation code (seats, expiry) │ AV_LicenseServer.log │ ← log └──────────────┬───────────────┘ │ LAN network (TCP, port 7788) ┌─────────┼──────────┐ │ │ │ ┌───▼───┐ ┌───▼───┐ ┌────▼──┐ │ SPC │ │ SPP │ │ ... │ ← Client PCs, each with └───────┘ └───────┘ └───────┘ Server=<server IP> Port=7788 in their settings

目录

  1. 概述与工作原理
  2. 系统要求
  3. 安装
  4. 授权激活:Code.txt 文件
  5. AV License Manager 日常使用
  6. 配置客户端(SPC、SPP 等)
  7. 客户端许可证的管理方式
  8. 网络与防火墙
  9. 更新
  10. 故障排除
  11. 快速参考

1. 概述与工作原理

AV License Server 管理"并发席位"(concurrent seats)许可证:每个产品(如 SPC、SPP)在客户的激活码中设定了可以同时使用的最大席位数。它不绑定单台电脑:网络上的任意客户端都可以使用一个空闲席位,直到席位全部用完为止。

该系统由两个程序组成,安装在同一台电脑(服务器)上:

  • AV_LicenseServer.exe — 作为 Windows 服务在后台运行,始终处于激活状态(即使没有用户登录)。它负责响应网络上客户端的请求,没有图形界面。
  • AV_LicenseManager.exe — 管理控制台:用于启动/停止服务、查看日志以及管理激活文件。无需一直保持打开:服务器的运行不依赖于它。

客户端(SPC、SPP 等,安装在网络上的其他电脑上)在启动时通过网络(TCP)连接到服务器,请求许可证,并在保持打开期间通过定期发送信号("心跳")来维持该许可证的有效性。

2. 系统要求

  • 安装时需要 Windows 管理员权限(用于注册 Windows 服务并写入 Program Files 目录)。
  • 选作服务器的电脑必须在局域网内拥有固定或保留的 IP 地址(如果发生变化,所有客户端都需要重新配置)。建议通过路由器上的 DHCP 保留分配,或将其设为静态 IP。
  • 没有其他软件前置要求:安装程序已包含所需的一切。

3. 安装

  1. 将安装程序 <yyyymmdd>_AV_LicenseServer_x64.exe(由安装包在 Kit\Output\ 中生成;文件名以生成日期开头,例如 20261010_AV_LicenseServer_x64.exe)复制到选作服务器的电脑上并运行。
  2. 确认管理员权限请求(UAC)。
  3. 在安装向导的可选任务页面中:
    • "Install and start the AV License Server Windows service" — 默认已勾选。保持勾选可立即启动服务;仅在希望只安装文件、暂不启用服务时取消勾选。
    • "Create a desktop icon for AV License Manager" — 默认未勾选,如果经常在该电脑上进行管理操作,可以勾选以方便使用。
  4. 完成安装。如果服务已被安装,安装程序会:
    • 注册并启动该服务(内部名称为 AV_LicenseServer,在 services.msc 中显示为 "AV License Server");
    • 自动在 Windows 防火墙中添加例外规则,允许 AV_LicenseServer.exe 通过,且仅限于域和专用网络配置文件(不包括公用网络)——如果没有此例外,其他电脑上的客户端将无法连接到服务器(参见第 8 节)。
  5. 安装到 C:\Program Files\AV License Server\ 中的文件:
    • AV_LicenseServer.exe(服务程序)
    • AV_LicenseManager.exe(管理控制台 — 其"开始"菜单/桌面快捷方式已设置为以管理员身份启动,这是控制服务所必需的)
    • AV_LicenseServer.ini — 带有默认值(Port=7788 等)的示例配置文件;后续更新永远不会覆盖它。
    • AV_LicenseServer_Manual.html — 本手册,也可从开始菜单("AV License Server Manual")打开。
  6. 此时服务器已经处于激活状态,但尚未启用任何许可证:必须先安装客户的 Code.txt 激活文件(第 4 节),真实客户端才能获得许可证。在此之前,客户端仍会尝试连接,并自动获得30 天的试用期(参见第 7 节)。

4. 授权激活:Code.txt 文件

Code.txt 文件决定了该服务器上启用了哪些产品、允许多少并发席位以及有效期至何时。它是针对特定客户生成的,并与服务器电脑的硬件绑定(如果复制到其他电脑上则无法使用)。

4.1 申请激活码

在 AV License Manager 的 Licenses 选项卡中,点击 "Code request" 按钮会自动检测本机的两个硬件标识符(SystemID 和 NetworkID),并打开浏览器进入 Arolo 页面提交激活码申请,两个标识符已自动填好,无需手动抄写。

4.2 安装收到的激活码

收到由生成激活码的一方(通过电子邮件或其他方式)提供的 Code.txt 文件后:

  1. 打开 AV License Manager,切换到 Licenses 选项卡。
  2. 点击 "Select Code.txt..." 并选择收到的文件:系统会对其进行验证,并自动复制到服务器所在的文件夹中。
  3. 相关数据(客户名称、已启用产品、席位数、到期日期)会立即显示在列表中,为只读状态。
  4. 重启服务(在 Service 选项卡中点击 Stop,然后 Start;也可用 Refresh status 按钮查看当前状态):服务器仅在启动时读取 Code.txt —— 在应用打开状态下安装新文件,不会影响当前已生效的许可证,直到服务重新启动为止。

"Remove license file" 按钮用于删除当前的激活文件(仅在需要替换时使用;没有 Code.txt 将无法授予任何正式许可证,只能使用试用期)。

4.3 文件内容

针对每个产品记录:名称、授权的最高版本、并发席位数量、签发日期以及到期日期(或"永不过期"),以及该产品已启用的可选功能(选项,例如 SPC 的 ResidualAnalysis 和 CutOptimization;全部或无)。该文件在磁盘上是加密存储的:用文本编辑器打开将看不到任何可读内容。

5. AV License Manager 日常使用

三个主要部分,均位于 Service 选项卡中:

  • 标题标签 — 显示名称、已安装的 AV License Server 版本,以及客户端需要连接的 IP 地址和端口(例如 Service: AV_LicenseServer (AV License Server) v26.10.28.0 - 192.168.0.31:7788)。这是配置每个客户端时需要使用的值(参见第 6 节)。
  • 服务状态(Running / Stopped / not installed),每 2 秒刷新一次,配有以下按钮:
    • Start / Stop — 启动或停止服务。
    • Install service / Uninstall service — 注册或移除该 Windows 服务(通常安装程序已经完成此操作;仅在手动重新安装时才需要用到)。
    • Refresh status — 立即刷新状态,无需等待定时器。
  • Log — 显示 AV_LicenseServer.log 的最新内容,可手动刷新或每 2 秒自动刷新,并附有一个按钮可在资源管理器中打开日志所在文件夹。有助于了解某个客户端为何未能获得许可证(拒绝的确切原因总会记录在此处)。

所有针对服务的操作都需要管理员权限:如果权限被拒绝,应用会提示以提升权限的方式重新启动。

Licenses 选项卡显示当前生效的 Code.txt 数据,以及用于申请新激活码或安装已收到激活码的按钮(参见第 4 节)。Available 列显示每个产品当前仍可用的许可证数量:席位数减去正在使用的许可证和借出的许可证(参见第 7.1 节)。该值在打开选项卡或点击 Refresh 时从正在运行的服务读取,例如显示 3 of 5 或 2 of 5 (1 borrowed);如果 Code.txt 中该产品的许可证已过期,显示 0 (expired);服务停止时显示 n/a (service not running);对于新 Code.txt 中服务尚未加载的产品,显示 n/a (restart the service)(参见第 4.2 节)。Options 列显示 Code.txt 为每个产品启用的可选功能:All(全部)、None(无)或其列表(例如 ResidualAnalysis, CutOptimization)。

Borrowed 选项卡列出当前借出的许可证(参见第 7.1 节):产品、用户、计算机、借出日期、到期日期和剩余天数。该选项卡为只读 — 借出只能在客户端归还或到期时结束 — 并在打开选项卡或点击 Refresh 时更新。

6. 配置客户端(SPC、SPP 等)

每个客户端应用程序都有一个设置文件(例如 settings.xml),其中包含类似如下的节点:

<License Server="192.168.0.31" Port="7788" Product="SPC"/>
  • Server:服务器电脑的 IP 地址,即 AV License Manager 中 Service 选项卡显示的地址(参见第 5 节)——如果客户端运行在与服务器不同的电脑上,绝不能使用 127.0.0.1/localhost(只有当客户端和服务器恰好在同一台机器上时才会"碰巧"生效,详见第 8 节)。
  • Port:服务器上配置的端口(AV_LicenseServer.ini,默认值为 7788)——必须与之一致。
  • Product:Code.txt 中预期的产品名称(不区分大小写)。

如果服务器的 IP 地址将来发生变化(更换电脑、网络重新配置等),必须在所有客户端上同步更新。

7. 客户端许可证的管理方式

  • 启动时,客户端会连接到服务器,为自己的产品/版本申请一个许可证。如果有空闲席位(且该产品已在 Code.txt 中启用),即可获得许可证;否则会收到错误信息(例如"没有可用席位")。
  • 使用期间,客户端每 30 秒发送一次信号("心跳"),以确认自己仍处于活动状态并维持许可证。
  • 正常关闭时,客户端会明确释放许可证,该席位会立即重新变为可用状态,供其他用户使用。
  • 发生崩溃、断电或网线断开等情况时:如果 TCP 连接中断,服务器会立即释放该许可证;如果连接处于"挂起"状态而不再收到心跳,服务器也会在经过 HeartbeatTimeoutSec(默认 90 秒,可在 AV_LicenseServer.ini 中配置)后将其释放。实际上,不会因为某个客户端异常消失而长时间占用某个席位。
  • 试用期:如果因任何原因该产品未被启用(没有 Code.txt、产品未列出、硬件不匹配、已过期等),客户端仍可获得30 天的试用访问权限,从其自身可执行文件的编译日期算起,且没有席位数量限制。该试用期无法通过安装/删除 Code.txt 来"重置":其基准是固定绑定到客户端的编译版本的。
  • 即将到期提醒:一个真实(非试用)许可证如果即将到期(可配置的阈值,默认 15 天),会在客户端触发一个非阻断性的提醒——许可证仍会照常授予。
  • 许可持有人:真实许可证还会显示该许可证所登记的客户名称(来自 Code.txt),客户端可以在其界面中显示该信息。
  • 产品选项:真实许可证还会告知客户端该产品启用了哪些可选功能(Code.txt 中的 Options,参见第 4.3 节);客户端应用程序只启用这些功能。试用期内所有选项均处于启用状态。借出的许可证保留借出时所拥有的选项。

服务器停止或重新启动:许可证状态由服务保存在内存中,因此服务重新启动后不再记录已占用的席位。已在运行的客户端程序可以继续工作(许可证仅在启动时检查),并会在下一次心跳(30 秒内)自动重新登录并重新占用一个席位,无需手动操作。为确保它们能找回席位,服务器在重新启动后的 40 秒内会为重启前已连接的客户端保留席位:在此时间窗口内启动的新客户端会被提示几秒后重试。如果没有有效的许可证(服务器持续约 90 秒无法访问,或在此期间其他用户已占满所有席位),SPC 和 SPP 会显示提示信息:随后 SPC 会禁用其控件,与启动时许可证无效的情况完全相同,并在许可证恢复后自动重新启用(客户端每隔 30 秒重试一次);SPP 则会关闭。为避免这种情况,请在非工作时间重启服务器。

7.1 离开网络工作:借出许可证

需要离开办公室工作的用户(在客户现场、在家或出差时使用笔记本电脑)可以在离开前借出一个许可证:

  • 借出(仍在网络中时):在客户端应用程序中选择借出命令并指定天数。服务器在此期间为该计算机保留一个席位,并向其发放一张签名的票据,保存在该计算机上。服务器最多批准 MaxBorrowDays 天(默认 30 天,AV_LicenseServer.ini 中的键;0 表示禁用借出),且绝不超过 Code.txt 中许可证的到期日期。试用许可证不能借出。
  • 离开网络时:客户端无需连接服务器即可正常启动和工作,直到借出期结束。票据仅在为其签发的计算机上有效,不能被修改,如果系统时钟被调回,票据将失效。
  • 席位保持占用:在许可证借出期间,服务器将该席位计为已使用(即使服务重启后也是如此),因此其他用户无法使用。借出的许可证列在 AV License Manager 的 Borrowed 选项卡中。
  • 回到网络:客户端会自动重新连接服务器,并继续使用同一个借出席位。如需提前释放席位,请使用客户端的归还命令(服务器必须可以访问)。
  • 到期:如果许可证未归还,借出期结束时服务器会自动释放该席位,同时该计算机上的票据失效。因此,丢失或损坏的计算机会一直占用其席位直到借出期结束:无法提前释放,请谨慎选择天数。

7.2 无需 License Server:单机许可证

不使用 License Server 的单台计算机(例如只有一台 PC 的公司)可以使用单机许可证(stand-alone):一个文件(.lic),仅在该计算机上授权一个产品,无需服务器、网络或席位。

  • 申请:在客户端应用程序的 License 窗口中,Stand-alone license 区域的 Copy 按钮会将 Computer code(计算机代码)复制到剪贴板:将其发送给您的供应商,由供应商签发 .lic 文件(产品、最高版本、选项、签发日期以及到期日期或永不过期)。
  • 安装:在同一区域中点击 Import license... 并选择收到的文件。系统会对其进行检查(本计算机、本产品、日期、版本)并保存到 %ProgramData%\AV_License\ 中,对该计算机的所有用户有效;它会立即生效,正在占用的网络席位会被释放。放在客户端可执行文件旁边的 <产品>.lic 文件同样会被使用。
  • 使用:启动时,客户端首先查找单机许可证;如果没有或无法使用,则照常联系 License Server(网络许可证、借出、试用)。使用单机许可证时,即将到期提醒、许可证持有人和产品选项的工作方式与网络许可证相同;无需借出,借出请求会被拒绝。
  • 保护:该文件仅在签发时指定的计算机和产品上有效,不能修改,并且如果系统时钟被调回,该文件将失效。如果文件存在但无法使用(已过期、为其他计算机签发等),客户端会显示原因。
  • 删除:Remove license 会将其从计算机中删除;随后客户端将重新使用 License Server。

8. 网络与防火墙

服务器会监听电脑上的所有网络接口(而不是单一地址),因此:

  • 如果客户端与服务器位于同一台电脑上,网络 IP(如 192.168.0.31:7788)和 127.0.0.1:7788(回环地址)都可以正常使用;
  • 如果客户端位于不同电脑上,则只有服务器的网络 IP 地址可用——绝不能使用 127.0.0.1,因为它指向的是客户端自身。

服务器电脑上的 Windows 防火墙必须允许该端口的入站连接,否则远程客户端将无法连接(相关症状参见第 10 节)。安装程序会自动创建此例外规则(仅限于域/专用网络,不包括公用网络——这与该服务仅面向公司局域网使用的定位相符)。仅在以下情况下才需要手动重新创建:

  • 服务并非通过官方安装包安装的;
  • 该例外规则被手动删除,或因防火墙重置而丢失;
  • 服务器电脑所连接的网络被归类为"公用"而非"专用"/"域"(在这种情况下该例外规则不会生效:请在 Windows 的"设置 > 网络和 Internet"中检查网络配置文件)。

手动(重新)创建该规则的命令,需在服务器电脑上以管理员身份运行(如安装在其他位置,请相应调整路径):

netsh advfirewall firewall add rule name="AV License Server" dir=in action=allow program="C:\Program Files\AV License Server\AV_LicenseServer.exe" enable=yes profile=domain,private

9. 更新

在服务器电脑上运行新的安装程序(<yyyymmdd>_AV_LicenseServer_x64.exe),操作方式与首次安装相同:它会覆盖可执行文件,但不会更改已有的 AV_LicenseServer.ini 或 Code.txt(客户的配置和激活信息保持不变)。服务会先停止,文件更新完成后,如果相应的任务选项保持勾选,服务会自动重新启动。

10. 故障排除

客户端出现的现象最可能的原因需要检查的内容
Communication error with the License Server: Connect timed out 数据包始终无法到达目标:服务器电脑上的 Windows 防火墙阻止了该端口,或者 IP/网络配置有误。 在客户端电脑上执行:Test-NetConnection <服务器IP> -Port 7788。如果结果为 False,请检查服务器上的防火墙例外规则(第 8 节),并确认客户端与服务器处于同一可达的网络/子网中。
Communication error with the License Server: Socket Error #10061 - Connection refused 该电脑有响应,但该端口/IP 上没有任何服务在监听:服务已停止,或客户端与服务器配置的端口不一致。 在服务器电脑上执行:netstat -an | findstr 7788(应显示 LISTENING);检查 AV License Manager(Service 选项卡)中的服务状态,并确认 AV_LicenseServer.ini 中的 Port= 与客户端配置一致。
NO_SEATS_AVAILABLE / "没有可用席位" 该产品的所有并发席位已被占用。 检查当前有多少用户正在打开该程序;如需增加席位,请向管理激活码的一方申请提高 NumberOfLicense 值的新 Code.txt。
LICENSE_EXPIRED 该产品在 Code.txt 中已列出,但其到期日期已过。 向管理激活码的一方申请续期(获取新的 Code.txt)。
VERSION_NOT_LICENSED 客户端版本高于 Code.txt 中为该产品授权的最高版本。 申请涵盖新版本的新 Code.txt,或继续使用不高于授权版本的客户端。
TRIAL_EXPIRED 该产品没有有效许可证(没有 Code.txt、产品未列出、硬件不匹配),且客户端的 30 天试用期已结束。 安装客户的 Code.txt(参见第 4 节)并重新启动服务;确切原因记录在日志中。
SERVER_STARTING 服务刚刚重新启动:在 40 秒内,它会为重启前已连接的客户端保留席位(参见第 7 节)。 等待几秒钟后重新启动客户端。
BORROW_DISABLED / BORROW_NOT_ALLOWED 服务器上已关闭借出功能(MaxBorrowDays=0),或该产品只有试用许可证,而试用许可证不能借出。 在 AV_LicenseServer.ini 中将 MaxBorrowDays 设置为大于 0 的值并重新启动服务;如果是试用许可证,请先安装客户的 Code.txt。
"The stand-alone license has expired" / "...was issued for another computer" / "...is not valid" 计算机上的单机许可证(参见第 7.2 节)无法使用:已过期、为其他计算机或产品签发、已损坏或被修改,或者系统时钟已被调回。 如有需要,请恢复正确的日期和时间;否则请向供应商申请针对本计算机代码的新 .lic 文件并导入(参见第 7.2 节)。在此期间,如果已配置 License Server,客户端会使用它。
即使已安装 Code.txt,客户端仍显示 "Trial version expires in: N days" 安装新的 Code.txt 后尚未重启服务(该文件仅在启动时读取),或者文件中的 SystemID/NetworkID 与本机不匹配。 在 Service 选项卡中重启服务;在日志(AV_LicenseServer.log)中查看启动时记录的确切原因。
AV License Manager 无法启动/停止/安装服务 缺少管理员权限。 对应用弹出的"以提升权限重新启动"提示选择"是",或以"以管理员身份运行"的方式启动该应用。

11. 快速参考

  • 默认端口:TCP 7788(可在 AV_LicenseServer.ini 中通过 Port 键配置)。
  • Windows 服务名称:AV_LicenseServer(在 services.msc 中显示为 "AV License Server")。
  • 典型安装目录:C:\Program Files\AV License Server\。
  • 主要文件:AV_LicenseServer.exe、AV_LicenseManager.exe、AV_LicenseServer.ini、Code.txt、AV_LicenseServer.log。
  • 心跳超时时间:默认 90 秒(键 HeartbeatTimeoutSec)。
  • 试用期:自客户端编译日期起 30 天,固定值,不可配置。
  • 即将到期提醒:默认 15 天(键 ExpiryWarningDays)。
  • 日志保留时间:默认 15 天(键 LogRetentionDays)。
  • 借出许可证:默认最多 30 天(键 MaxBorrowDays,0 = 禁用);状态保存在 AV_LicenseServer.borrows 中。
  • 单机许可证:%ProgramData%\AV_License\<产品>.lic(或客户端可执行文件旁边);无需 License Server(参见第 7.2 节)。