Skip to content

Releases: CoreWCF/CoreWCF

CoreWCF v1.5.2

15 Mar 01:12
Compare
Choose a tag to compare

Release Notes

Package Info

CoreWCF.ConfigurationManager 1.5.2
CoreWCF.Http 1.5.2
CoreWCF.Kafka 1.5.2
CoreWCF.Kafka.Client 1.5.2
CoreWCF.NetFramingBase 1.5.2
CoreWCF.NetTcp 1.5.2
CoreWCF.Primitives 1.5.2
CoreWCF.Queue 1.5.2
CoreWCF.RabbitMQ 1.5.2
CoreWCF.RabbitMQ.Client 1.5.2
CoreWCF.Templates 1.5.2
CoreWCF.UnixDomainSocket 1.5.2
CoreWCF.WebHttp 1.5.2

.NET Compatibility

This release depends on .NET Standard 2.0 and runs on any .NET version which supports .NET Standard 2.0. This release supports .NET Framework 4.6.2 and above, .NET 6, .NET 7, and .NET8. It is built on top of ASP.NET Core and has been tested and runs on all currently supported versions of ASP.NET Core up to 8.0. The CoreWCF.RabbitMQ.Client, CoreWCF.Kafka.Client, and CoreWCF.UnixDomainSocket packages only support .NET 6 or later.

What's Changed

Security Fixes

GHSA-32jq-mv89-5rx7 - CoreWCF NetFraming based services can leave connections open when they should be closed.

Feedback

Your feedback is important and appreciated. Please use the discussion #1288 for your questions and comments.

Full Changelog: v1.5.1...v1.5.2

CoreWCF v1.4.2

15 Mar 01:08
Compare
Choose a tag to compare

Release Notes

Package Info

CoreWCF.ConfigurationManager 1.4.2
CoreWCF.Http 1.4.2
CoreWCF.Kafka 1.4.2
CoreWCF.Kafka.Client 1.4.2
CoreWCF.NetFramingBase 1.4.2
CoreWCF.NetTcp 1.4.2
CoreWCF.Primitives 1.4.2
CoreWCF.Queue 1.4.2
CoreWCF.RabbitMQ 1.4.2
CoreWCF.RabbitMQ.Client 1.4.2
CoreWCF.Templates 1.4.2
CoreWCF.WebHttp 1.4.2

.NET Compatibility

This release depends on .NET Standard 2.0 and runs on any .NET version which supports .NET Standard 2.0. This release supports .NET Framework 4.6.2 and above, .NET 6, and .NET 7. It is built on top of ASP.NET Core and has been tested and runs on all currently supported versions of ASP.NET Core up to 7.0. The client packages CoreWCF.RabbitMQ.Client and CoreWCF.Kafka.Client are supported on .NET 6 or later.

What's Changed

Security Fixes

GHSA-32jq-mv89-5rx7 - CoreWCF NetFraming based services can leave connections open when they should be closed.

Feedback

Your feedback is important and appreciated. Please use the discussion #1209 for your questions and comments.

Full Changelog: v1.4.1...v1.4.2

CoreWCF v1.5.1

09 Nov 19:01
Compare
Choose a tag to compare

Release Notes

Package Info

CoreWCF.ConfigurationManager 1.5.1
CoreWCF.Http 1.5.1
CoreWCF.Kafka 1.5.1
CoreWCF.Kafka.Client 1.5.1
CoreWCF.NetFramingBase 1.5.1
CoreWCF.NetTcp 1.5.1
CoreWCF.Primitives 1.5.1
CoreWCF.Queue 1.5.1
CoreWCF.RabbitMQ 1.5.1
CoreWCF.RabbitMQ.Client 1.5.1
CoreWCF.Templates 1.5.1
CoreWCF.UnixDomainSocket 1.5.1
CoreWCF.WebHttp 1.5.1

.NET Compatibility

This release depends on .NET Standard 2.0 and runs on any .NET version which supports .NET Standard 2.0. This release supports .NET Framework 4.6.2 and above, .NET 6, .NET 7, and .NET8. It is built on top of ASP.NET Core and has been tested and runs on all currently supported versions of ASP.NET Core up to 8.0. The CoreWCF.RabbitMQ.Client, CoreWCF.Kafka.Client, and CoreWCF.UnixDomainSocket packages only support .NET 6 or later.

New Features

Unix Domain Socket support

With this release, the CoreWCF.UnixDomainSocket package has come out of preview. This package enables you to use unix domain sockets for same host communication with CoreWCF. This provides an alternative to NetNamedPipe and works on all supported platforms. This was contributed by @birojnayak from AWS. The WCF Client project is simultaneously releasing the package System.ServiceModel.UnixDomainSocket to provide the client for this transport.

New implementation of default IOperationInvoker

In previous versions, the IOperationInvoker called MethodInfo.Invoke to call the service method. This is a relatively expensive way to call a method. In this release, we have a new implementation using LINQ Expressions which compiles a strongly typed lambda function to call the service method. This will provide a small performance improvement when dispatching a service call. If you experience any compatibility issues, you can set the AppContext switch CoreWCF.Dispatcher.UseLegacyInvokeDelegate to true to fallback to the previous implementation. If you need to do this, please open an issue explaining the problem you had. This feature was implemented by @g7ed6e
Β 

What's Changed

Bug Fixes

  • Fix ambiguous UseServiceModel when using WebApplication by source including CoreWCF extension method for net6.0+ by @g7ed6e in #1235
  • Fix PathTooLongException in OperationParameterInjectorGenerator by @g7ed6e in #1240
  • For the Kafka binding, enhance offset commit handling when using AtLeastOnce semantic by @g7ed6e #1260
  • Renamed UnixDomainSocketClientCredentialType.IdentityOnly to PosixIdentity and added enum type UnixDomainSocketSecurityMode to create UDS security mode TransportCredentialOnly to correctly reflect that PosixIdentity doesn't provide any transport encryption or integrity by @birojnayak in #1262
  • Updated package dependencies to latest minor version by @mconnew in #1272
  • Prevent code analyzers from analyzing CoreWCF extension method source included by package by @bjornen77 in #1278
  • Prevent CoreWCF extension method source being included when targeting netstandard2.0 by @mconnew in #1196
  • Prevent CoreWCF extension source file being compiled when project doesn't reference asp.net core by @mconnew in #1282

Feedback

Your feedback is important and appreciated. Please use the discussion #1288 for your questions and comments.

Full Changelog: v1.5.0-preview1...v1.5.1

CoreWCF v1.5.0-preview1

12 Sep 00:07
Compare
Choose a tag to compare
Pre-release

Release Notes

Package Info

CoreWCF.ConfigurationManager 1.5.0-preview1
CoreWCF.Http 1.5.0-preview1
CoreWCF.Kafka 1.5.0-preview1
CoreWCF.Kafka.Client 1.5.0-preview1
CoreWCF.MSMQ 1.5.0-preview1
CoreWCF.NetFramingBase 1.5.0-preview1
CoreWCF.NetNamedPipe 1.5.0-preview1
CoreWCF.NetTcp 1.5.0-preview1
CoreWCF.Primitives 1.5.0-preview1
CoreWCF.Queue 1.5.0-preview1
CoreWCF.RabbitMQ 1.5.0-preview1
CoreWCF.RabbitMQ.Client 1.5.0-preview1
CoreWCF.Templates 1.5.0-preview1
CoreWCF.UnixDomainSocket 1.5.0-preview1
CoreWCF.WebHttp 1.5.0-preview1

.NET Compatibility

This release depends on .NET Standard 2.0 and runs on any .NET version which supports .NET Standard 2.0. This release supports .NET Framework 4.6.2 and above, .NET 6, and .NET 7. It is built on top of ASP.NET Core and has been tested and runs on all currently supported versions of ASP.NET Core up to 7.0. The CoreWCF.RabbitMQ.Client, CoreWCF.Kafka.Client, and CoreWCF.UnixDomainSocket packages only support .NET 6 or later.

New Features

Unix Domain Socket support

We've added the CoreWCF.UnixDomainSocket package to provide support for using unix domain sockets with CoreWCF. This provides an alternative to NetNamedPipe and works on all supported platforms. This was contributed by @birojnayak from AWS.

What's Changed

Bug Fixes

  • Cleanup the shared memory object for named pipe which was preventing restarting a service in the same process by @mconnew in #1195
  • Fix hash algorithm used to shorten long paths for net.pipe urls by @mconnew in #1196

Feedback

Your feedback is important and appreciated. Please use the discussion #1220 for your questions and comments.

Full Changelog: v1.4.1...v1.5.0-preview1

CoreWCF v1.4.1

11 Sep 23:22
Compare
Choose a tag to compare

Release Notes

Package Info

CoreWCF.Primitives 1.4.1
CoreWCF.Http 1.4.1
CoreWCF.WebHttp 1.4.1
CoreWCF.NetFramingBase 1.4.1
CoreWCF.NetTcp 1.4.1
CoreWCF.Queue 1.4.1
CoreWCF.RabbitMQ 1.4.1
CoreWCF.RabbitMQ.Client 1.4.1
CoreWCF.Kafka 1.4.1
CoreWCF.Kafka.Client 1.4.1
CoreWCF.ConfigurationManager 1.4.1
CoreWCF.Templates 1.4.1

The MSMQ and NetNamedPipe packages are still in preview and will be in the next preview release.

.NET Compatibility

This release depends on .NET Standard 2.0 and runs on any .NET version which supports .NET Standard 2.0. This release supports .NET Framework 4.6.2 and above, .NET 6, and .NET 7. It is built on top of ASP.NET Core and has been tested and runs on all currently supported versions of ASP.NET Core up to 7.0. The client packages CoreWCF.RabbitMQ.Client and CoreWCF.Kafka.Client are supported on .NET 6 or later.

What's Changed

Bug Fixes

  • Some packages dependency version updates were missed when updating to latest versions by @mconnew in #1215 and #1219

Feedback

Your feedback is important and appreciated. Please use the discussion #1209 for your questions and comments.

Full Changelog: v1.4.0...v1.4.1

CoreWCF v1.4.0

07 Sep 18:04
Compare
Choose a tag to compare

Release Notes

Package Info

CoreWCF.Primitives 1.4.0
CoreWCF.Http 1.4.0
CoreWCF.WebHttp 1.4.0
CoreWCF.NetFramingBase 1.4.0
CoreWCF.NetTcp 1.4.0
CoreWCF.Queue 1.4.0
CoreWCF.RabbitMQ 1.4.0
CoreWCF.RabbitMQ.Client 1.4.0
CoreWCF.Kafka 1.4.0
CoreWCF.Kafka.Client 1.4.0
CoreWCF.ConfigurationManager 1.4.0
CoreWCF.Templates 1.4.0

The MSMQ and NetNamedPipe packages are still in preview and will be in the next preview release.

.NET Compatibility

This release depends on .NET Standard 2.0 and runs on any .NET version which supports .NET Standard 2.0. This release supports .NET Framework 4.6.2 and above, .NET 6, and .NET 7. It is built on top of ASP.NET Core and has been tested and runs on all currently supported versions of ASP.NET Core up to 7.0. The client packages CoreWCF.RabbitMQ.Client and CoreWCF.Kafka.Client are supported on .NET 6 or later.

New Features

Queue Transport support

The CoreWCF.Queue package has come out of preview and provides a base set of classes for Queue based transports. New to this release are the packages CoreWCF.Kafka and CoreWCF.Kafka.Client, contributed by @g7ed6e. This enables using CoreWCF with the Apache Kafka distributed event streaming platform. The RabbitMQ packages CoreWCF.RabbitMQ and CoreWCF.RabbitMQ.Client are now out of preview. The MSMQ package is not out of preview yet.

What's Changed

Bug Fixes

  • Enable sending unsecured faults when using TransportWithMessageCredentials by @mconnew in #1083
  • Reading incoming streamed message failed if chunk size and data arrive in different receive calls by @chrjstophoros in #1100
  • Fixed missing argument in TimeoutException message causing different exception by @FirstClassCitizenFCC in ##1111
  • Fix ServiceAuthorizationBehavior lifetime to enable override per registered Service by @g7ed6e in #1119
  • Fixed Xml signature validation of requests from non-WCF clients by @gekiss in #1180
  • Fixed calling OperationContext.Current before the host started broke OperationContext.Current in operations by @DxCK in #1157
  • Added Kafka packages by @g7ed6e in #943
  • Fixed WSDL generation when AddressingVersion.WSAddressingAugust2004 was used by @ioda in #1112
  • Improved interop with Apache CFX which can't handle the "role" attribute being applied to the Security header by @mconnew in #1197
  • Fixed hosted services not being correctly stopped when disposing but not stopping WebApplication by @g7ed6e and @mconnew in #1205 and #1206

New Features/APIs

  • WindowsClaimSet made public by @afifi-ins in #1090
  • ServiceCredentialsSecurityTokenManager made public by @afifi-ins in #1088
  • Add explicit cast to Saml2SecurityToken to enable retrieving underlying Microsoft.IdentityModel.Tokens.Saml2.Saml2SecurityToken instance by @birojnayak in #1074
  • Added API to enable using AuthorizationPolicy support with explicit HTTP client credential type by @g7ed6e in #1148

Other changes

Non-shipping contributions

  • Make it easy to locally host SourceBrowser for CoreWCF by @mconnew in #1156

New Contributors

Feedback

Your feedback is important and appreciated. Please use the discussion #1209 for your questions and comments.

Full Changelog: v1.4.0-preview1...v1.4.0

CoreWCF v1.4.0-preview1

19 Apr 22:17
Compare
Choose a tag to compare
Pre-release

Release Notes

Package Info

CoreWCF.Primitives 1.4.0-preview1
CoreWCF.Http 1.4.0-preview1
CoreWCF.WebHttp 1.4.0-preview1
CoreWCF.NetFramingBase 1.4.0-preview1
CoreWCF.NetTcp 1.4.0-preview1
CoreWCF.NetNamedPipe 1.4.0-preview1
CoreWCF.Queue 1.4.0-preview1
CoreWCF.MSMQ 1.4.0-preview1
CoreWCF.RabbitMQ 1.4.0-preview1
CoreWCF.RabbitMQ.Client 1.4.0-preview1
CoreWCF.ConfigurationManager 1.4.0-preview1
CoreWCF.Templates 1.4.0-preview1

.NET Compatibility

This release depends on .NET Standard 2.0 and runs on any .NET version which supports .NET Standard 2.0. This release supports .NET Framework 4.6.2 and above, .NET 6, and .NET 7. It is built on top of ASP.NET Core and has been tested and runs on all currently supported versions of ASP.NET Core up to 7.0. The CoreWCF.RabbitMQ.Client package only supports .NET 6 or later.

New Features

Named Pipe support

We've added the CoreWCF.NetNamedPipe package to provide support for using named pipes. The code common to NetNamedPipe and NetTcp has been refactored into the CoreWCF.NetFramingBase. This makes it easier to add new transports based on top of streaming connections. Named Pipe support is only for Windows, but we'll be adding Unix Domain Socket support at a later date to provide an equivalent feature for using on Linux. This was contributed by @mconnew from Microsoft.

Queue Transport support

We've added the CoreWCF.Queue package which provides a base set of classes to make adding Queue based transports easier. We are releasing the new packages CoreWCF.MSMQ and CoreWCF.RabbitMQ (implements the AMQP protocol) to provide transports for using Windows MSMQ and RabbitMQ. We also currently have in development a queue based transport for Apache Kafka which will be released in the near future. The goal is to provide support for MSMQ as a step to migrating to other queue technologies. We're also releasing our first client package CoreWCF.RabbitMQ.Client which is only supported on .NET 6.0 or later. This is built on top of the WCF Client 6.0 pre-release package. This work was coordinated by @birojnayak from Amazon AWS, who wrote the design document for the generic Queue implementation. The majority of the code was contributed by @Ximik87 and @jonlouie. We also had code contributions from @birojnayak and @g7ed6e.

Add support for ServiceBehaviorAttribute.UseSynchronizationContext

@bjornhellander exposed ServiceBehaviorAttribute.UseSynchronizationContext and added validating tests to confirm the property is working as expected. #983

What's Changed

Bug Fixes

When using HttpClientCredentialType.InheritedFromHost, we now issue an auth challenge if request is not authenticated if earlier middleware didn't do so, by @g7ed6e in #967
Fixed DI injection generated code when parameter name in implementation doesn't match parameter name in contract, by @g7ed6e in #1030
Fixed channel state transitions for HTTP which was breaking returning a fault when user extensibility throws an exception, by @mconnew in #1011
Fixed MTOM headers being incorrectly added to response body with HTTP, by @mconnew in #1049
Fixed compat behavior of [WebGet|WebInvoke]Attribute.Is[Request|Response]FormatSetExplicitly when using the attributes from System.ServiceModel.dll when using WebHttp on .NET Framework, by @arontsang in #1035

Other changes

The version of dependent packages has changed in this release. We've had feedback that depending on the latest versions of packages causes problems for some users as it forces an upgrade. Starting from this release, we'll depend on the latest LTS versions of packages. This means we've downgraded requirements for a couple of dependencies from the 7.x version to the 6.x version. Upgrading and using the 7.x versions of packages in your own projects is still supported and intended to work.

As part of the work necessary to refactor common code between NetTcp and NetNamedPipe, CoreWCF now supports hosting NetTcp services when using an HTTP IServer other than Kestrel. This means you can use NetTcp with HttpSys or even hosted in IIS. Please note, NetTcp still doesn't support IIS hosted activation or port sharing, it still listens on its own socket and needs a unique port number.

Non-shipping contributions

None

New Contributors

Feedback

Your feedback is important and appreciated. Please use the discussion #1069 for your questions and comments.

Full Changelog: v1.3.2...v1.4.0-preview1

CoreWCF v1.3.2

23 Mar 16:33
Compare
Choose a tag to compare

Release Notes

Package Info

CoreWCF.Primitives 1.3.2
CoreWCF.Http 1.3.2
CoreWCF.NetTcp 1.3.2
CoreWCF.WebHttp 1.3.2
CoreWCF.ConfigurationManager 1.3.2
CoreWCF.Templates 1.3.2

.NET Compatibility

This release depends on .NET Standard 2.0 and runs on any .NET version which supports .NET Standard 2.0. This release supports .NET Framework 4.6.2 and above, .NET 6, and .NET 7. It is built on top of ASP.NET Core and has been tested and runs on all currently supported versions of ASP.NET Core up to 7.0.

What's Changed

This release contains the follow bug fixes:

  • WebHttpBinding now supports ASP.NET Core authentication and policy based authorization using InheritedByHost by @g7ed6e in #951
  • Fixed Windows auth with TransportWithMessageCredentials on .NET 7.0 by @nmangue in #917
  • Fixed issue with source generator crashing when using OpenApiResponse and FromServices together in the same contract by @g7ed6e in #970
  • Fixed issue with MTOM support not handling responses larger than 2GB. Also improves memory usage for some scenarios using MTOM by @afifi-ins in #1005
  • Fixed ASP.NET Core authentication authzn integration when the provided AuthorizationHandler<T> is added to DI with scoped lifetime by @g7ed6e in #948

Feedback

Your feedback is important and appreciated. Please use the existing v1.3.0 discussion #946 for your questions and comments.

Full Changelog: v1.3.1...v1.3.2

CoreWCF v1.3.1

29 Dec 04:45
Compare
Choose a tag to compare

Release Notes

Package Info

CoreWCF.Primitives 1.3.1
CoreWCF.Http 1.3.1
CoreWCF.NetTcp 1.3.1
CoreWCF.WebHttp 1.3.1
CoreWCF.ConfigurationManager 1.3.1
CoreWCF.Templates 1.3.1

.NET Compatibility

This release depends on .NET Standard 2.0 and runs on any .NET version which supports .NET Standard 2.0. This release supports .NET Framework 4.6.2 and above, .NET 6, and .NET 7. We have dropped support for .NET Core 3.1 as support has ended for that version. It is built on top of ASP.NET Core and has been tested and runs on all currently supported versions of ASP.NET Core up to 7.0.

What's Changed

This release is to address a bug in the newly released ASP.NET Core authorization integration. When specifying InheritedByHost as the authentication mechanism, we are failing to reject unauthenticated requests. This bug only affects the new authentication and authorization feature introduced in v1.3.0.

  • Fixed authentication when using InheritedByHost by @g7ed6e in #961

Feedback

Your feedback is important and appreciated. Please use the existing v1.3.0 discussion #946 for your questions and comments.

Full Changelog: v1.3.0...v1.3.1

CoreWCF v1.3.0

16 Dec 01:20
Compare
Choose a tag to compare

Release Notes

Package Info

CoreWCF.Primitives 1.3.0
CoreWCF.Http 1.3.0
CoreWCF.NetTcp 1.3.0
CoreWCF.WebHttp 1.3.0
CoreWCF.ConfigurationManager 1.3.0
CoreWCF.Templates 1.3.0

.NET Compatibility

This release depends on .NET Standard 2.0 and runs on any .NET version which supports .NET Standard 2.0. This release supports .NET Framework 4.6.2 and above, .NET 6, and .NET 7. We have dropped support for .NET Core 3.1 as support has ended for that version. It is built on top of ASP.NET Core and has been tested and runs on all currently supported versions of ASP.NET Core up to 7.0.

New Features

ASP.NET Core Authorization support

We now support attributing your service implementation with the ASP.NET Core [Authorize] attribute. We support specifying the Policy, but not Roles or AuthenticationSchemes. This support is currently only for HTTP although we're investigating ways to enable it for other transports. This work was done by @g7ed6e.

Configuration support for WebHttpBinding

If you are using the CoreWCF.ConfigurationManager package for config file support, we now have support for configuring WebHttpBinding. Thanks to @jvnvenu for adding this support.

New options on CoreWCF Template

When using the CoreWCF template to create a new project, you will now have the option to add docker support. Thanks to @g7ed6e for adding this option.

ServiceAuthenticationManager and ServiceAuthorizationManager API modernization

These two classes now have async versions of the virtual methods which you can override. The existing synchronous method have been deprecated using the Obsolete attribute and will cause a build warning. If you are overriding one of the existing synchronous virtual methods, your code will continue to function the same as it always has and will continue to do so for all future 1.x releases. The synchronous variations of the methods will likely be removed in a future 2.x release. You can safely suppress the build warning until you have migrated your implementation to the async methods. Thanks to @g7ed6e for making these async as this has long been a source of problems for developers using WCF on .NET Framework.

What's Changed

  • Drop UriEx by @g7ed6e in #855
  • Fix NetTcp to correctly apply MaxReceivedMessageSize by @mconnew in #856
  • Make ServiceAuthorizationManager async by @g7ed6e in #852
  • Fix WSDL issues due to runtime changes in net7.0 support by @g7ed6e in #837
  • Async global exception logging missing user-code stacktrace by @OlofBlomqvist in #863
  • Make ServiceAuthenticationManager async by @g7ed6e in #851
  • Added Check That Config File Exists by @lukedukeus in #879
  • Update CoreWCF.Templates target runtimes by @g7ed6e in #882
  • OpenApiSchemaBuilder compatibility with System.ServiceModel.Web Attributes by @arontsang in #897
  • RequestDelegateHandler.AcceptWebSocketAsync does not support SubProtocol == null by @arontsang in #909
  • Fix binding to empty address by @arontsang in #908
  • Make templates findable in VS when searching for 'Web' by @g7ed6e in #895
  • Introduce ASP.NET Core Authorization support by @g7ed6e in #850
  • Enable VS 2022 builtin docker support and wording for https in templates by @g7ed6e in #937
  • Fix logger category in ServiceModelApplicationBuilderExtensions by @mus65 in #929
  • WebHttpBinding config section support added by @jvnvenu in #927
  • Update package versions by @mconnew in #942
  • drop netcoreapp3.1 from CoreWCF.Templates by @g7ed6e in #945

Non-shipping contributions

  • Update debug tests to use 15m timeout too by @mconnew in #880
  • Remove net5.0 unit tests by @g7ed6e in #885
  • Add hint to find test causing CI error 'There is no currently active test.' by @g7ed6e in #928
  • Fix OneWayPatternTest by @g7ed6e in #938
  • Design document for generic queue transport in CoreWCF by @birojnayak in #736

New Contributors

Feedback

Your feedback is important and appreciated. Please use the discussion #946 for your questions and comments.

Full Changelog: v1.2.0...v1.3.0