Releases: dotnet/wcf
WCF for .NET Core 1.0
Release Notes
This is part of .NET Core 1.0 released 6/27/2016 (Release notes)
Packages
- System.ServiceModel.Duplex 4.0.1
- System.ServiceModel.Http 4.1.0
- System.ServiceModel.NetTcp 4.1.0
- System.ServiceModel.Primitives 4.1.0
- System.ServiceModel.Security 4.0.1
Features
Please refer to the table of Supported Features for a complete list of features that are supported by this release. Here are a few highlights of improvements since RC2 release.
- Performance and reliability improvement
- Significantly increased NetTcp throughput on multi-core machines:
- 2X maximum throughput increase.
- 8X throughput increase in high concurrency scenarios - 20-50% increase in maximum throughput of WebSocket scenarios
- 10-70% increase in maximum throughput of Http based scenarios
- Improved reliability in duplex streaming and handling of state transitions in Http based scenarios
- Improved reliability in Http transport on Linux
- Further streamlined asynchronous code paths to reduce context switches, thread starvation, and latencies
- UWP projects can now leverage latest WCF features in this release by referencing 5.2.2 version of
Microsoft.NETCore.UniversalWindowsPlatform
package. - Client certificates and custom server certificate validation are now supported on Linux and OS X in addition to Windows.
- Client certificates and custom server certificate validation are now supported for NetTcp transport on UWP.
- Client certificates are supported for Http transport on UWP.
- Extended testing on supported platforms including Debian, Fedora, Red Hat Enterprise Linux and Open SUSE in addition to previously known Ubuntu, CentOS, OS X, Windows and UWP.
An update to the WCF Connected Service Preview Visual Studio Extension has been released to assist WCF client proxy generation of service reference for .NET Core 1.0 and ASP.NET Core 1.0 applications.
Known Issues
- Message level security is not supported (#3, #4, #8)
- WebSocket is not supported on Linux or OS X (#625)
- Peer trust certificate authentication is not supported (#1183)
- UpnEndPointIdentity and SpnEndpointIdentity are not supported (#10, #11)
- Windows authentication with explicit credentials is not supported by NetTcp transport (#1262)
- Windows authentication is not supported by NetTcp transport on UWP (#1235)
- Windows authentication is not supported by Http transport on Linux and OS X (#946)
For a complete list of known issues, please see this issue list.
WCF for .NET Core 1.0 RC2
Release notes
This is part of .NET Core 1.0 RC2 released 5/16/2016 (Release notes)
- Supported features
- Please refer to the table of Supported Features for a complete list of features that are supported by this release.
- Packages
- What's new?
- Performance and reliability improvements
- A number of improvements to memory footprint on Http, NetHttp and NetTcp bindings
- Improvements to scalability of asynchronous code paths
- Up to 3X performance improvement in HttpStreaming scenarios
- Significant performance improvement for the first call of a ServiceContract in scenarios where XmlSerializerFormatAttribute and ServiceKnownTypeAttribute are used
- Improved stability in various stress scenarios
- Increased support for HTTPS
- Added the bindings BasicHttpsBinding and NetHttpsBinding
- Added the binding element HttpsTransportBindingElement
- On Windows, a client certificate can be set on the channel factory credentials
- On Windows, a server certificate validation callback can be set on the channel factory credentials
- A client can now specify a client certificate for client authentication with the server or access a certificate provided to the client for validation.
- Added support of all supported TLS/SSL protocols. This brings WCF on .NET Core feature parity with full .NET Framework in the area.
- Added asynchronous support for SSL stream security for improved scalability.
- Added support of Windows stream security (WindowsStreamSecurity binding element) via NegotiateStream. On Windows, support is seamless like for WCF on full .NET Framework. For other OSes, support is available when using Kerberos authentication.
- Added support of MessageHeaderAttribute that allows you to map fields and properties of a type marked with the MessageContractAttribute attribute to SOAP message headers.
- Added support of MessageParameterAttribute that allows you to control the name of the request and response parameter names.
- Added support of setting AllowCookies=true on a channel that allows you to indicates whether a WCF client will automatically store and resend any cookies sent by a WCF service.
- The NetTcp transport now supports all forms of streamed TransferMode (Streamed, StreamedRequest, StreamedResponse). This includes both synchronous and asynchronous forms as well as use with SecurityMode.None and SecurityMode.Transport.
- Performance and reliability improvements
- Known Issues
-
Closing or aborting a client channel using NetTcp can throw a SocketException on OS X. The workaround is to temporarily use a try/catch and ignore SocketExceptions occurring during a close or abort.
-
Client certificates and custom server certificate validation are currently only available on Windows.
-
The support of Kerberos authentication on Linux distros and OS X is dependent on the underlying Kerberos implementation that is MIT GSSAPI (Ubuntu, Debian), NTLM SSP (RedHat / CentOS), or Heimdal (OS X) implementation. In order to establish a connection to the server, one must install required components on corresponding OSes. Additional details can be found in known issues regarding NegotiateStream in .NET Core 1.0 RC2 release notes.
-
In an ASP.NET Core Web Application, a .NET Core Console Application or a .NET Core Class Library, you may need to add
System.Private.ServiceModel
package in addition to WCF contract packages for your application/library to build properly, so your project.json may look like this"netcoreapp1.0": { "imports": "dnxcore50", "dependencies": { ... "System.ServiceModel.Duplex": "4.0.1-rc2-24027", "System.ServiceModel.Http": "4.1.0-rc2-24027", "System.ServiceModel.NetTcp": "4.1.0-rc2-24027", "System.ServiceModel.Primitives": "4.1.0-rc2-24027", "System.ServiceModel.Security": "4.0.1-rc2-24027", "System.Private.ServiceModel": "4.1.0-rc2-24027" } }
-
As stated in the known issues regarding UWP projects in .NET Core 1.0 RC2 release notes, this RC2 release cannot be used in a Windows Universal Platform (UWP) application.
-
WCF for .NET Core 5 RC1
This is part of the RC1 release for .NET Core 5
WCF Release notes
- Supported features
- Packages
- What's new?
- WebSockets: Users are able to use WebSocket buffered TransferMode for bidirectional communication (Duplex) over HTTP.
- Security enhancement: Users are able to specify and validate the expected DNS identity of the server via DnsEndpointIdentity API.
- Known Issues
-
In an ASP.NET 5 application, you may need to add extra packages below that WCF has dependency on in addition to WCF packages for your application to build properly, so your project.json may look like this
"dnxcore50": { "dependencies": { ... "System.ServiceModel.Primitives": "4.1.0-beta-23516", "System.ServiceModel.Http": "4.0.11-beta-23516", "System.ServiceModel.NetTcp": "4.1.0-beta-23516", "System.ServiceModel.Duplex": "4.0.1-beta-23516", "System.ServiceModel.Security": "4.0.1-beta-23516", "System.Net.NameResolution": "4.0.0-beta-23516", "System.Net.Security": "4.0.0-beta-23516", "System.Security.Principal.Windows" : "4.0.0-beta-23516" } }
-
In a Windows Universal (UWP) application, you may need to add extra packages as below in addition to WCF packages for your application to build and run properly, so your project.json may look like this
"dependencies": { ... "Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0", "System.ServiceModel.Primitives": "4.1.0-beta-23516", "System.ServiceModel.Http": "4.0.11-beta-23516", "System.ServiceModel.NetTcp": "4.1.0-beta-23516", "System.ServiceModel.Duplex": "4.0.1-beta-23516", "System.ServiceModel.Security": "4.0.1-beta-23516", "System.Collections": "4.0.11-beta-23516", "System.Collections.Concurrent": "4.0.11-beta-23516", "System.Collections.NonGeneric": "4.0.1-beta-23516", "System.Collections.Specialized": "4.0.1-beta-23516", "System.ComponentModel": "4.0.1-beta-23516", "System.ComponentModel.EventBasedAsync": "4.0.11-beta-23516", "System.Diagnostics.Contracts": "4.0.1-beta-23516", "System.Diagnostics.Debug": "4.0.11-beta-23516", "System.Diagnostics.Tools": "4.0.1-beta-23516", "System.Diagnostics.Tracing": "4.0.21-beta-23516", "System.Globalization": "4.0.11-beta-23516", "System.IO": "4.0.11-beta-23516", "System.IO.Compression": "4.1.0-beta-23516", "System.Linq": "4.0.1-beta-23516", "System.Linq.Expressions": "4.0.11-beta-23516", "System.Linq.Queryable": "4.0.1-beta-23516", "System.Net.Http": "4.0.1-beta-23516", "System.Net.Primitives": "4.0.11-beta-23516", "System.Net.WebHeaderCollection": "4.0.1-beta-23516", "System.Net.WebSockets": "4.0.0-beta-23516", "System.Net.WebSockets.Client": "4.0.0-beta-23516", "System.ObjectModel": "4.0.11-beta-23516", "System.Reflection": "4.1.0-beta-23516", "System.Reflection.DispatchProxy": "4.0.1-beta-23516", "System.Reflection.Extensions": "4.0.1-beta-23516", "System.Reflection.Primitives": "4.0.1-beta-23516", "System.Reflection.TypeExtensions": "4.1.0-beta-23516", "System.Resources.ResourceManager": "4.0.1-beta-23516", "System.Runtime": "4.0.21-beta-23516", "System.Runtime.Extensions": "4.0.11-beta-23516", "System.Runtime.Handles": "4.0.1-beta-23516", "System.Runtime.InteropServices": "4.0.21-beta-23516", "System.Runtime.Serialization.Xml": "4.1.0-beta-23516", "System.Security.Claims": "4.0.1-beta-23516", "System.Security.Cryptography.X509Certificates": "4.0.0-beta-23516", "System.Security.Principal": "4.0.1-beta-23516", "System.Text.Encoding": "4.0.11-beta-23516", "System.Threading": "4.0.11-beta-23516", "System.Threading.Tasks": "4.0.11-beta-23516", "System.Threading.Timer": "4.0.1-beta-23516", "System.Xml.ReaderWriter": "4.0.11-beta-23516", "System.Xml.XDocument": "4.0.11-beta-23516", "System.Xml.XmlDocument": "4.0.1-beta-23516", "System.Xml.XmlSerializer": "4.0.11-beta-23516", "System.Runtime.WindowsRuntime": "4.0.11-beta-23516", "System.Private.Uri": "4.0.1-beta-23516", "System.Private.DataContractSerialization": "4.1.0-beta-23516" },
-