OPC UA 1.04.372 Maintenance Update
Version bump to .372 due to breaking changes and roll up until August 25th
Bug Fixes / Improvements:
- The spec compliant
opc.https
endpoint is now supported for client and server. For non compliant clients and servershttps
is still supported as a prefix. - The reference server TestData complex data structure sample is now compliant.
- The returned string tables for diagnostic infos were incorrect when a service call had to be batched into multiple calls due to operation limits.
- Use of
ArrayPool.Shared
in theBufferManager
takes advantage of uninitialized buffer memory (.NET6) and improved buffer sharing. - Fix a few special cases and bugs in the subscription transfer on the client and server. Fixed sequential publishing support when subscription is transferred.
- A hot path for
Byte
processing was added in theArraySegmentStream
. - Refuse nested inner diagnostics levels > 5 to prevent potential stack overflows.
- Support reconnect to servers from distributed clients, e.g. as failover when subscription transfer is not supported by a server.
- Update of MQTT PubSub sample library to latest MQTT.NET library by @KneShell.
- Fix use cases in client and server when
GoodSubscriptionTransferred
was not sent by the server or acted on in the client after session transfer.
Changes that may break existing code/projects:
- .NET Framework 4.6.2 support is deprecated. Only .NET Framework 4.8 is supported to reduce the usage of the Bouncy Castle crypto library.
ICloneable
is back in the generated code!IEncodeable
needs the implementation of theClone
methods.- Refactored
IEncoder
/IDecoder
interfaces to be derived fromIDisposable
. IJsonEncoder
/IJsonDecoder
were added to support coding against JSON encoding interfaces. A new method
void UsingReversibleEncoding<T>(Action<string, T> action, string fieldName, T value, bool useReversibleEncoding)
allows to switch between reversible and non-reversible encoding.Opc.Ua.NodeSet2.xml
is still available as embedded resource but as a zipped resource with the extension.zip
- Invalid or unambigious use of
ExpandedNodeId
andNodeId
are now throwing exceptions to hint on coding errors!. e.g.ExpandedNodeId nodeId = "Test"
orNodeId nodeId = "nsu=http://mynamespace;s=Test"
throw anArgumentException
. ISession.PublishStateChanged
now returnsPublishStateChangedEventArgs
instead ofEventArgs
, including information when publish stopped, recovered or a subscription was transferred.
Released packages
OPCFoundation.NetStandard.Opc.Ua
OPCFoundation.NetStandard.Opc.Ua.Core
OPCFoundation.NetStandard.Opc.Ua.Security.Certificates
OPCFoundation.NetStandard.Opc.Ua.Configuration
OPCFoundation.NetStandard.Opc.Ua.Server
OPCFoundation.NetStandard.Opc.Ua.Client
OPCFoundation.NetStandard.Opc.Ua.Client.ComplexTypes
OPCFoundation.NetStandard.Opc.Ua.Bindings.Https
OPCFoundation.NetStandard.Opc.Ua.PubSub
What's Changed
- Bump version to .372 by @mregen in #2139
- Use ICloneable in generated code by @mregen in #2044
- Json Encoder: namespace URI handling by @MarkusHorstmann in #2119
- Bump Microsoft.NET.Test.Sdk from 17.5.0 to 17.6.0 by @dependabot in #2159
- Merge release 1.4.371.91 in master by @mregen in #2163
- Bump coverlet.collector from 3.2.0 to 6.0.0 by @dependabot in #2158
- Deprecate .NET framework 4.6.2 support, sync with samples repo by @mregen in #2165
See More
- Fixes an issue in Session.LoadDataTypeSystem. by @AndreasHeisel in #2166
- Bump Nerdbank.GitVersioning from 3.5.119 to 3.6.133 by @dependabot in #2164
- Bump NUnit3TestAdapter from 4.4.2 to 4.5.0 by @dependabot in #2174
- Bump Microsoft.NET.Test.Sdk from 17.6.0 to 17.6.1 by @dependabot in #2172
- Support use of opc.https endpoint url for client and server. by @mregen in #2140
- Bump Microsoft.NET.Test.Sdk from 17.6.1 to 17.6.2 by @dependabot in #2179
- TestData sample structure compliance by @mregen in #2175
- Bump Serilog from 2.12.0 to 3.0.1 by @dependabot in #2205
- Merge release updates to main by @mregen in #2206
- Bump Microsoft.NET.Test.Sdk from 17.6.2 to 17.6.3 by @dependabot in #2213
- Various bugfixes for CTT and others by @mregen in #2212
- Bump NunitXml.TestLogger from 3.0.131 to 3.1.15 by @dependabot in #2220
- Fix stringtables for diagnostic results when service calls are batched by @mregen in #2222
- Add Filter Result property to monitored item status by @marcschier in #2219
- Support Dynamic Complex Types by @MarkusHorstmann in #2146
- Bump Microsoft.Extensions.Logging.Abstractions from 3.1.32 to 7.0.1 by @dependabot in #2194
- Bump BenchmarkDotNet from 0.13.5 to 0.13.6 by @dependabot in #2226
- Revert Microsoft.Extensions.Logging.Abstractions to V3.1.32 by @mrsuciu in #2229
- Add IJsonEncoder/IJsonDecoder interfaces by @mregen in #2042
- Fix corner cases of subscription transfer by @mregen in #2227
- Always use ArrayPool.Shared for optimized use of buffers in buffer manager by @marcschier in #2224
- Fix codecoverage pipeline by @mregen in #2236
- Improve stream processing hotpath by @mregen in #2241
- Zip embedded Opc.Ua.NodeSet2.xml to reduce assembly size by @mregen in #2232
- Better NodeId/ExpandedNodeId built in types handling by @mregen in #2230
- Truncate inner diagnostics if nested depth too high by @mregen in #2247
- Support for session reconnect from distributed clients by @mregen in #2244
- Improve client subscription implementation by @mregen in #2245
- Support ActivitySource in OPC UA client to enable tracing (.NET6) by @bhnaphade in #2251
- Bump BenchmarkDotNet from 0.13.6 to 0.13.7 by @dependabot in #2258
- Bump Microsoft.NET.Test.Sdk from 17.6.3 to 17.7.0 by @dependabot in #2257
- Support client activities on all target platforms by @mregen in #2256
- Complete ISessionFactory interface by @mregen in #2255
- Refactor IEncoder/IDecoder to derive from IDisposable by @mregen in #2254
- Fixed NodeId.CompareTo() null reference exception by @mrsuciu in #2263
- '#' is not treated as a reserved character in RelativePath's text format by @bhnaphade in #2264
- Bump Microsoft.Extensions.Logging.Abstractions from 3.1.32 to 7.0.1 by @dependabot in #2233
- Bump Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets from 2.1.3 to 2.1.40 in /Stack/Opc.Ua.Bindings.Https by @dependabot in #2271
- Update MQTTnet nuget package version 3.1.1 to 4.2.1.781 (#2272) by @KneShell in #2273
- Bump Moq from 4.18.4 to 4.20.69 by @dependabot in #2268
- Bump Microsoft.NET.Test.Sdk from 17.7.0 to 17.7.1 by @dependabot in #2275
- Fix for 'BadTooManyOperations' in session.publish / 'BadServerHalted' when server is stopped. by @bhnaphade in #2277
- Add event for the session configuration changed by @mregen in #2278
- Use the request queue to return GoodSubscriptionTransferred immediately by @mregen in #2280
- Removed extra unnecessary code and fixed use of userWriteMask by @cacamille3 in #2269
- Publish state change does not correctly handle subscription transferred case by @bhnaphade in #2281
New Contributors
- @AndreasHeisel made their first contribution in #2166
- @bhnaphade made their first contribution in #2251
- @KneShell made their first contribution in #2273
Full Changelog: 1.4.371.96...1.4.372.56