g82tt
|
3d41f4d412
|
V1.12: RuleEngineService DI 注入失败修复
【问题】
后端 VS 启动报: Unable to resolve service for type 'Warehouse.Services.iot_alarmService'
while attempting to activate 'Warehouse.Services.RuleEngineService'.
【根因】
1. iot_alarmService 通过框架 IDependency 机制被 AutofacContainerModuleExtension.AddModule
按第一个接口 Iiot_alarmService 注册到内置 DI(具体类未单独注册)
2. RuleEngineService 构造函数按具体类 iot_alarmService 注入 → 内置 DI 找不到 → 验证失败
【修复】
RuleEngineService.cs: 构造函数参数 + 字段类型由 iot_alarmService 改为 Iiot_alarmService
(符合框架惯例,与 gateway_nodesController.cs:40 / iot_alarmController.cs:15/24 一致)
【验证】
dotnet build api_sqlsugar 0 错误 0 警告
【效果】
- RuleEngineService 构造函数 DI 解析成功
- var app = builder.Build() 不再抛 AggregateException
- 后端可正常启动
- Quartz 调度 RuleEngineJob 每 10s 调一次 EvaluateAllAsync()
- 规则触发"告警"动作时 _alarmService.UpsertAlarmAsync 可正确调用
|
2026-07-24 05:34:21 +08:00 |
|