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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="OPCFoundation.NetStandard.Opc.Ua.Bindings.Https" Version="2.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="OPCFoundation.NetStandard.Opc.Ua.Bindings.Https" Version="2.0.0" />
                    
Directory.Packages.props
<PackageReference Include="OPCFoundation.NetStandard.Opc.Ua.Bindings.Https" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add OPCFoundation.NetStandard.Opc.Ua.Bindings.Https --version 2.0.0
                    
#r "nuget: OPCFoundation.NetStandard.Opc.Ua.Bindings.Https, 2.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package OPCFoundation.NetStandard.Opc.Ua.Bindings.Https@2.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=OPCFoundation.NetStandard.Opc.Ua.Bindings.Https&version=2.0.0
                    
Install as a Cake Addin
#tool nuget:?package=OPCFoundation.NetStandard.Opc.Ua.Bindings.Https&version=2.0.0
                    
Install as a Cake Tool

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 and Sec-WebSocket-Protocol negotiation.
  • 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 on IOpcUaBuilder and specialized server builders for fluent registration into the ITransportBindingRegistry.
  • An IHttpsListenerStartupContributor extension hook for companion middleware that wants to mount on the shared Kestrel host.
  • KestrelTcpTransportListener (net8.0+, opt-in) — hosts the opc.tcp:// listener on Kestrel via Microsoft.AspNetCore.Connections.ConnectionHandler instead of the raw-socket TcpTransportListener (which ships in Opc.Ua.Core and stays the default). Registered with AddKestrelOpcTcpTransport(); 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 with AddWebApiTransport(); 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.6 is deprecated because it is no longer maintained.
2.0.0-preview.5 233 9/17/2026 2.0.0-preview.5 is deprecated because it is no longer maintained.
2.0.0-preview.4 551 9/2/2026 2.0.0-preview.4 is deprecated because it is no longer maintained.
2.0.0-preview.3 237 8/28/2026 2.0.0-preview.3 is deprecated because it is no longer maintained.
2.0.0-preview.2 592 8/24/2026 2.0.0-preview.2 is deprecated because it is no longer maintained.
1.5.378.182 205 10/4/2026
1.5.378.176 1,212 9/11/2026 1.5.378.176 is deprecated because it is no longer maintained.
1.5.378.156 7,033 7/10/2026 1.5.378.156 is deprecated because it is no longer maintained.
1.5.378.152 1,271 6/25/2026 1.5.378.152 is deprecated because it is no longer maintained.
1.5.378.145 3,471 5/21/2026 1.5.378.145 is deprecated because it is no longer maintained.
1.5.378.134 6,610 3/26/2026 1.5.378.134 is deprecated because it is no longer maintained.
1.5.378.106 4,359 1/28/2026 1.5.378.106 is deprecated because it is no longer maintained.
1.5.378.65 3,411 12/18/2025 1.5.378.65 is deprecated because it is no longer maintained.
1.5.378.10-preview 531 11/18/2025 1.5.378.10-preview is deprecated because it is no longer maintained.
1.5.377.22 3,754 11/14/2025 1.5.377.22 is deprecated because it is no longer maintained.
1.5.377.21 3,097 9/22/2025 1.5.377.21 is deprecated because it is no longer maintained.
1.5.377.11-preview 439 9/4/2025 1.5.377.11-preview is deprecated because it is no longer maintained.
1.5.376.244 6,991 7/31/2025 1.5.376.244 is deprecated because it is no longer maintained.
1.5.376.235 6,963 6/26/2025 1.5.376.235 is deprecated because it is no longer maintained.
Loading failed