OPCFoundation.NetStandard.Opc.Ua.Bindings.Https
2.0.0
Prefix Reserved
dotnet add package OPCFoundation.NetStandard.Opc.Ua.Bindings.Https --version 2.0.0
NuGet\Install-Package OPCFoundation.NetStandard.Opc.Ua.Bindings.Https -Version 2.0.0
<PackageReference Include="OPCFoundation.NetStandard.Opc.Ua.Bindings.Https" Version="2.0.0" />
<PackageVersion Include="OPCFoundation.NetStandard.Opc.Ua.Bindings.Https" Version="2.0.0" />
<PackageReference Include="OPCFoundation.NetStandard.Opc.Ua.Bindings.Https" />
paket add OPCFoundation.NetStandard.Opc.Ua.Bindings.Https --version 2.0.0
#r "nuget: OPCFoundation.NetStandard.Opc.Ua.Bindings.Https, 2.0.0"
#:package OPCFoundation.NetStandard.Opc.Ua.Bindings.Https@2.0.0
#addin nuget:?package=OPCFoundation.NetStandard.Opc.Ua.Bindings.Https&version=2.0.0
#tool nuget:?package=OPCFoundation.NetStandard.Opc.Ua.Bindings.Https&version=2.0.0
OPC UA .NET Standard — HTTPS / WSS / REST binding
OPCFoundation.NetStandard.Opc.Ua.Bindings.Https adds the
https:// / opc.https:// (HTTPS-binary + HTTPS-JSON) and
wss:// / opc.wss:// (WSS-binary + WSS-JSON) listeners and
channels on top of OPCFoundation.NetStandard.Opc.Ua.Core. The
listeners are hosted by Kestrel. On net8.0+ it also provides an
opt-in Kestrel-hosted opc.tcp:// listener so a single IHost can
serve every OPC UA transport, and the OPC UA REST binding (Part 6
§G.3 OpenAPI Mapping) as ASP.NET Core Minimal-API endpoints mounted
into the same Kestrel pipeline.
Overview
The package contains:
HttpsTransportListener— single Kestrel-hosted listener serving HTTPS-binary, HTTPS-JSON, WSS-binary, and WSS-JSON on the same port, with content-type andSec-WebSocket-Protocolnegotiation.WssTransportChannel/WssJsonTransportChannel— client-side WebSocket channels for the two sub-protocols.HttpsTransportChannel/OpcHttpsTransportChannel— client-side HTTPS-binary channels.- WSS reverse-connect for both server-side outbound and client-side listener flows.
- The
AddHttpsTransport()/AddWssTransport()DI extensions onIOpcUaBuilderand specialized server builders for fluent registration into theITransportBindingRegistry. - An
IHttpsListenerStartupContributorextension hook for companion middleware that wants to mount on the shared Kestrel host. KestrelTcpTransportListener(net8.0+, opt-in) — hosts theopc.tcp://listener on Kestrel viaMicrosoft.AspNetCore.Connections.ConnectionHandlerinstead of the raw-socketTcpTransportListener(which ships inOpc.Ua.Coreand stays the default). Registered withAddKestrelOpcTcpTransport(); it has full feature parity with the raw-socket listener (forward endpoints, reverse-connect, TLS certificate hot-update, discovery).WebApiHttpsStartupContributor+MapWebApiEndpoints()(net8.0+, opt-in) — Minimal-API endpoints implementing the OPC UA REST binding (Part 6 §G.3 OpenAPI Mapping). Registered withAddWebApiTransport(); NativeAOT-compatible, no MVC reflection.
Getting started
Reference this package directly in every application that enables HTTPS, WSS, Kestrel-hosted OPC TCP, or the REST binding. Server feature packages do not pull this optional binding transitively.
using Microsoft.Extensions.DependencyInjection;
using Opc.Ua;
services
.AddOpcUa()
.AddOpcTcpTransport()
.AddHttpsTransport() // https:// + opc.https://
.AddWssTransport(); // wss:// + opc.wss://
// Optional (net8.0+): host opc.tcp:// on Kestrel too, so a single
// IHost serves opc.tcp, opc.https, and opc.wss. Call AFTER
// AddOpcTcpTransport(); last-writer-wins per URI scheme.
services
.AddOpcUa()
.AddOpcTcpTransport()
.AddKestrelOpcTcpTransport();
OPC UA REST binding (Part 6 §G.3 OpenAPI Mapping)
On net8.0+ the package also exposes every OPC UA service as a
POST /<service> Minimal-API endpoint, implementing the OPC UA
OpenAPI Mapping
(profile/2338). Bodies use the standard OPC UA JSON encoding from
Part 6 §5.4; both the Compact flavour (default; mandatory per
§5.4.9) and Verbose are negotiated via the
application/json; encoding=compact|verbose media-type parameter on
Content-Type and Accept.
The REST surface is additive: it mounts into the same Kestrel
pipeline as the binary + opcua+uajson bindings so a single port
serves them all simultaneously. Discovery (GetEndpoints) emits an
OpenAPI twin per SecurityMode.None HTTPS endpoint with
TransportProfileUri = Profiles.HttpsOpenApiTransport.
services
.AddOpcUa()
.AddHttpsTransport()
.AddWebApiTransport() // adds the REST endpoints
.AddWebApiAnonymousAuth(); // or AddWebApiBearerAuth(...) /
// AddWebApiBasicAuth(...) /
// AddWebApiMutualTlsAuth()
WebApiTransportOptions.ServiceSet maps all 28 services or the 8
sessionless ones. The binding can describe the routes it maps as an OpenAPI
document, generated from the route table and the request and response types
(WebApiOpenApiGenerator in Opc.Ua.Core.Schema). The document is off by
default: set OpenApiDocumentPath (for example /openapi.json) to serve it
with GET, behind the same authentication as the REST routes, and
OpenApiIncludeSchemas to add the component schemas an OpenAPI client
generator needs.
The companion WSS sub-profile opcua+openapi (profile/2339) is
provided by WebApiWssTransportChannel (client) and
HttpsTransportListener.AcceptWebSocketOpenApiAsync (server).
The binding is <IsAotCompatible>true</IsAotCompatible> on net10 —
the endpoint surface uses Minimal-API MapPost calls bound to
explicit RequestDelegate thunks so the trimmer can see every
generic instantiation at compile time. No
[UnconditionalSuppressMessage] attributes.
Target frameworks
net48, net8.0, net9.0, net10.0.
The opt-in Kestrel-hosted opc.tcp:// listener
(AddKestrelOpcTcpTransport()) and the REST binding
(AddWebApiTransport()) are available on net8.0+ only — the
ASP.NET Core ConnectionContext and Minimal-API surfaces they rely
on are not available on the .NET Framework targets,
where the default raw-socket opc.tcp listener remains the right
choice and REST is unavailable.
Additional documentation
See the main repository README and the Transport Profiles guide for the full URI scheme matrix, the REST binding guide for the full REST mapping table / authentication models / hosting modes, the Reverse Connect guide, and the Profiles overview.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Framework | net48 is compatible. net481 was computed. |
-
.NETFramework 4.8
- BitFaster.Caching (>= 2.6.1)
- BouncyCastle.Cryptography (>= 2.7.0)
- Microsoft.AspNetCore.Connections.Abstractions (>= 2.3.13)
- Microsoft.AspNetCore.Hosting (>= 2.3.13)
- Microsoft.AspNetCore.Http (>= 2.3.13)
- Microsoft.AspNetCore.Server.Kestrel (>= 2.3.13)
- Microsoft.AspNetCore.Server.Kestrel.Core (>= 2.3.13)
- Microsoft.AspNetCore.Server.Kestrel.Https (>= 2.3.13)
- Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets (>= 2.3.13)
- Microsoft.AspNetCore.WebSockets (>= 2.3.13)
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.12)
- Microsoft.Bcl.HashCode (>= 6.0.0)
- Microsoft.Bcl.TimeProvider (>= 10.0.12)
- Microsoft.Extensions.Configuration (>= 10.0.12)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Configuration.EnvironmentVariables (>= 10.0.12)
- Microsoft.Extensions.DependencyInjection (>= 10.0.12)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Diagnostics (>= 10.0.12)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Http (>= 10.0.12)
- Microsoft.Extensions.Http.Resilience (>= 10.10.0)
- Microsoft.Extensions.Logging (>= 10.0.12)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Options (>= 10.0.12)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.12)
- OPCFoundation.NetStandard.Opc.Ua.Core (>= 2.0.0)
- System.Buffers (>= 4.6.1)
- System.Collections.Immutable (>= 9.0.0)
- System.Diagnostics.DiagnosticSource (>= 10.0.12)
- System.Formats.Asn1 (>= 10.0.12)
- System.Memory (>= 4.6.3)
- System.Reflection.Metadata (>= 9.0.0)
- System.Runtime.CompilerServices.Unsafe (>= 6.1.2)
- System.Security.Cryptography.Cng (>= 5.0.0)
- System.Text.Json (>= 10.0.12)
- System.Threading.Channels (>= 10.0.12)
- System.Threading.RateLimiting (>= 10.0.12)
- System.Threading.Tasks.Extensions (>= 4.6.3)
-
net10.0
- BitFaster.Caching (>= 2.6.1)
- Microsoft.AspNetCore.Authentication.Certificate (>= 10.0.12)
- Microsoft.AspNetCore.Authentication.JwtBearer (>= 10.0.12)
- Microsoft.Bcl.TimeProvider (>= 10.0.12)
- Microsoft.Extensions.Http.Resilience (>= 10.10.0)
- OPCFoundation.NetStandard.Opc.Ua.Core (>= 2.0.0)
- OPCFoundation.NetStandard.Opc.Ua.Core.Schema (>= 2.0.0)
-
net8.0
- BitFaster.Caching (>= 2.6.1)
- Microsoft.AspNetCore.Authentication.Certificate (>= 8.0.31)
- Microsoft.AspNetCore.Authentication.JwtBearer (>= 8.0.31)
- Microsoft.Bcl.TimeProvider (>= 10.0.12)
- Microsoft.Extensions.Configuration (>= 10.0.12)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.12)
- Microsoft.Extensions.DependencyInjection (>= 10.0.12)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Diagnostics (>= 10.0.12)
- Microsoft.Extensions.Http (>= 10.0.12)
- Microsoft.Extensions.Http.Resilience (>= 10.10.0)
- Microsoft.Extensions.Logging (>= 10.0.12)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Options (>= 10.0.12)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.12)
- OPCFoundation.NetStandard.Opc.Ua.Core (>= 2.0.0)
- OPCFoundation.NetStandard.Opc.Ua.Core.Schema (>= 2.0.0)
- System.Collections.Immutable (>= 9.0.0)
- System.Diagnostics.DiagnosticSource (>= 10.0.12)
- System.Formats.Asn1 (>= 10.0.12)
- System.Security.Cryptography.Cng (>= 5.0.0)
- System.Text.Json (>= 10.0.12)
- System.Threading.Channels (>= 10.0.12)
- System.Threading.RateLimiting (>= 10.0.12)
-
net9.0
- BitFaster.Caching (>= 2.6.1)
- Microsoft.AspNetCore.Authentication.Certificate (>= 9.0.20)
- Microsoft.AspNetCore.Authentication.JwtBearer (>= 9.0.20)
- Microsoft.Bcl.TimeProvider (>= 10.0.12)
- Microsoft.Extensions.Configuration (>= 10.0.12)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.12)
- Microsoft.Extensions.DependencyInjection (>= 10.0.12)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Diagnostics (>= 10.0.12)
- Microsoft.Extensions.Http (>= 10.0.12)
- Microsoft.Extensions.Http.Resilience (>= 10.10.0)
- Microsoft.Extensions.Logging (>= 10.0.12)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Options (>= 10.0.12)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.12)
- OPCFoundation.NetStandard.Opc.Ua.Core (>= 2.0.0)
- OPCFoundation.NetStandard.Opc.Ua.Core.Schema (>= 2.0.0)
- System.Diagnostics.DiagnosticSource (>= 10.0.12)
- System.Formats.Asn1 (>= 10.0.12)
- System.Security.Cryptography.Cng (>= 5.0.0)
- System.Text.Json (>= 10.0.12)
- System.Threading.Channels (>= 10.0.12)
- System.Threading.RateLimiting (>= 10.0.12)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on OPCFoundation.NetStandard.Opc.Ua.Bindings.Https:
| Package | Downloads |
|---|---|
|
GodSharp.Opc.Ua.Server
opc ua server for .net. |
|
|
OPCFoundation.NetStandard.Opc.Ua.Lds.Server
OPC UA Local Discovery Server (LDS / LDS-ME) Class Library |
|
|
OPCFoundation.NetStandard.Opc.Ua.WotCon.Server
OPC UA WoT Connectivity 1.1 server class library — hosts the OPC 10100-1 v1.02 asset-management surface and the registry-first materialization runtime. |
GitHub repositories (2)
Showing the top 2 popular GitHub repositories that depend on OPCFoundation.NetStandard.Opc.Ua.Bindings.Https:
| Repository | Stars |
|---|---|
|
dathlin/OpcUaHelper
一个通用的opc ua客户端类库,基于.net 4.6.1创建,基于官方opc ua基金会跨平台库创建,封装了节点读写,批量节点读写,引用读取,特性读取,历史数据读取,方法调用,节点订阅,批量订阅等操作。还提供了一个节点浏览器工具。
|
|
|
OPCFoundation/UA-.NETStandard-Samples
|
| Version | Downloads | Last Updated | |
|---|---|---|---|
| 2.0.0 | 224 | 10/7/2026 | |
| 2.0.0-preview.6 | 192 | 9/30/2026 | |
| 2.0.0-preview.5 | 233 | 9/17/2026 | |
| 2.0.0-preview.4 | 551 | 9/2/2026 | |
| 2.0.0-preview.3 | 237 | 8/28/2026 | |
| 2.0.0-preview.2 | 592 | 8/24/2026 | |
| 1.5.378.182 | 205 | 10/4/2026 | |
| 1.5.378.176 | 1,212 | 9/11/2026 | |
| 1.5.378.156 | 7,033 | 7/10/2026 | |
| 1.5.378.152 | 1,271 | 6/25/2026 | |
| 1.5.378.145 | 3,471 | 5/21/2026 | |
| 1.5.378.134 | 6,610 | 3/26/2026 | |
| 1.5.378.106 | 4,359 | 1/28/2026 | |
| 1.5.378.65 | 3,411 | 12/18/2025 | |
| 1.5.378.10-preview | 531 | 11/18/2025 | |
| 1.5.377.22 | 3,754 | 11/14/2025 | |
| 1.5.377.21 | 3,097 | 9/22/2025 | |
| 1.5.377.11-preview | 439 | 9/4/2025 | |
| 1.5.376.244 | 6,991 | 7/31/2025 | |
| 1.5.376.235 | 6,963 | 6/26/2025 |