OPCFoundation.NetStandard.Opc.Ua.Bindings.Https.Debug 2.0.0-preview.2

Prefix Reserved
This is a prerelease version of OPCFoundation.NetStandard.Opc.Ua.Bindings.Https.Debug.
dotnet add package OPCFoundation.NetStandard.Opc.Ua.Bindings.Https.Debug --version 2.0.0-preview.2
                    
NuGet\Install-Package OPCFoundation.NetStandard.Opc.Ua.Bindings.Https.Debug -Version 2.0.0-preview.2
                    
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.Debug" Version="2.0.0-preview.2" />
                    
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.Debug" Version="2.0.0-preview.2" />
                    
Directory.Packages.props
<PackageReference Include="OPCFoundation.NetStandard.Opc.Ua.Bindings.Https.Debug" />
                    
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.Debug --version 2.0.0-preview.2
                    
#r "nuget: OPCFoundation.NetStandard.Opc.Ua.Bindings.Https.Debug, 2.0.0-preview.2"
                    
#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.Debug@2.0.0-preview.2
                    
#: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.Debug&version=2.0.0-preview.2&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=OPCFoundation.NetStandard.Opc.Ua.Bindings.Https.Debug&version=2.0.0-preview.2&prerelease
                    
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()

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

net472, net48, netstandard2.1, 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 / netstandard 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 net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  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 Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
.NET Framework net472 is compatible.  net48 is compatible.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on OPCFoundation.NetStandard.Opc.Ua.Bindings.Https.Debug:

Package Downloads
OPCFoundation.NetStandard.Opc.Ua.WotCon.Server.Debug

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.

OPCFoundation.NetStandard.Opc.Ua.Lds.Server.Debug

OPC UA Local Discovery Server (LDS / LDS-ME) Class Library

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.0.0-preview.2 48 8/24/2026
1.5.378.156 432 7/10/2026
1.5.378.152 426 6/25/2026
1.5.378.145 421 5/21/2026
1.5.378.134 474 3/26/2026
1.5.378.106 512 1/28/2026
1.5.378.65 770 12/18/2025
1.5.378.10-preview 453 11/18/2025
1.5.378.8-preview 278 11/14/2025
1.5.377.22 900 11/14/2025
1.5.377.21 858 9/22/2025
1.5.377.11-preview 238 9/4/2025
1.5.376.244 831 7/31/2025
1.5.376.235 801 6/26/2025
1.5.376.213 866 4/23/2025
1.5.375.457 1,076 2/26/2025
1.5.375.443 864 1/31/2025
1.5.374.176 700 2/13/2025
1.5.374.168 720 1/24/2025
Loading failed