diff --git a/Libraries/Opc.Ua.Server/Diagnostics/MonitoredNode.cs b/Libraries/Opc.Ua.Server/Diagnostics/MonitoredNode.cs index 640052e78..8f5414a9e 100644 --- a/Libraries/Opc.Ua.Server/Diagnostics/MonitoredNode.cs +++ b/Libraries/Opc.Ua.Server/Diagnostics/MonitoredNode.cs @@ -294,13 +294,31 @@ public void OnMonitoredNodeChanged(ISystemContext context, NodeState node, NodeS if (monitoredItem.AttributeId == Attributes.Value && (changes & NodeStateChangeMasks.Value) != 0) { - QueueValue(context, node, monitoredItem); + ServerSystemContext serverSystemContext; + if ((serverSystemContext = (context as ServerSystemContext)) != null) + { + ServerSystemContext context2 = serverSystemContext.Copy(new OperationContext(monitoredItem.Session, monitoredItem.DiagnosticsMasks)); + QueueValue(context2, node, monitoredItem); + } + else + { + QueueValue(context, node, monitoredItem); + } continue; } if (monitoredItem.AttributeId != Attributes.Value && (changes & NodeStateChangeMasks.NonValue) != 0) { - QueueValue(context, node, monitoredItem); + ServerSystemContext serverSystemContext2; + if ((serverSystemContext2 = (context as ServerSystemContext)) != null) + { + ServerSystemContext context3 = serverSystemContext2.Copy(new OperationContext(monitoredItem.Session, monitoredItem.DiagnosticsMasks)); + QueueValue(context3, node, monitoredItem); + } + else + { + QueueValue(context, node, monitoredItem); + } continue; } }