Plugin.DeviceDebug/Model/DebugSessionManager.cs
@@ -289,8 +289,10 @@ _resourceManager.ReleaseReservationAsync( ownerToken, resourceKey, CancellationToken.None).GetAwaiter().GetResult(); _sessionOwnerTokens.Remove(sessionId); log.Info($"已释放设备 {session.DeviceId} 的资源预约"); // 注意:不删除 _sessionOwnerTokens[sessionId]! // 令牌必须保持稳定(TokenId 不变),否则下次进入维护时 new 出的新 Token // 无法在 LayeredResourceManager._grantsByToken 中找到旧租约 → 释放落空 → 租约永久泄漏 log.Info($"已释放设备 {session.DeviceId} 的资源预约(令牌保留供复用)"); } catch (Exception ex) {