- Added
AcceptSessionAsync
that accepts a specific session based on session ID.
- Renamed
ViaQueueOrTopicName
toTransactionQueueOrTopicName
. - Renamed
ViaPartitionKey
toTransactionPartitionKey
. - Renamed
ViaEntityPath
toTransactionEntityPath
. - Renamed
Proxy
toWebProxy
. - Made
MaxReceiveWaitTime
inServiceBusProcessorOptions
andServiceBusSessionProcessorOptions
internal. - Renamed
CreateSessionReceiverAsync
toAcceptNextSessionAsync
. - Removed
SessionId
fromServiceBusClientOptions
in favor ofAcceptSessionAsync
.
- Added AmqpMessage property on
ServiceBusMessage
andServiceBusReceivedMessage
that gives full access to underlying AMQP details. - Added explicit Close methods on
ServiceBusReceiver
,ServiceBusSessionReceiver
,ServiceBusSender
,ServiceBusProcessor
, andServiceBusSessionProcessor
.
- Renamed
ServiceBusManagementClient
toServiceBusAdministrationClient
. - Renamed
ServiceBusManagementClientOptions
toServiceBusAdministrationClientOptions
. - Renamed
IsDisposed
toIsClosed
onServiceBusSender
,ServiceBusReceiver
, andServiceBusSessionReceiver
. - Made
ServiceBusProcessor
andServiceBusSessionProcessor
implementIAsyncDisposable
- Removed public constructors for
QueueProperties
andRuleProperties
. - Added
version
parameter toServiceBusAdministrationClientOptions
constructor. - Removed
CreateDeadLetterReceiver
methods in favor of newSubQueue
property onServiceBusReceiverOptions
. - Made
EntityNameFormatter
internal. - Made settlement methods on
ProcessMessageEventArgs
andProcessSessionMessageEventArgs
virtual for mocking. - Made all Create methods on
ServiceBusClient
virtual for mocking.
- Bug in TaskExtensions.EnsureCompleted method that causes it to unconditionally throw an exception in the environments with synchronization context
Thank you to our developer community members who helped to make the Service Bus client library better with their contributions and design input for this release:
- Added MaxConcurrentCallsPerSession option to ServiceBusSessionProcessor
- Change MaxConcurrentCalls to MaxConcurrentSessions in ServiceBusSessionProcessor.
- Replace (Queue|Topic|Subscription|Rule)Description with (Queue|Topic|Subscription|Rule)Properties.
- Add Create(Queue|Topic|Subscription|Rule)Options for creating entities.
- Replace (Queue|Topic|Subscription)RuntimeInfo with (Queue|Topic|Subscription)RuntimeProperties.
- Remove MessageCountDetails and move the properties directly into the RuntimeProperties types.
Thank you to our developer community members who helped to make the Service Bus client library better with their contributions and design input for this release:
- Add IAsyncEnumerable Receive overload
- Add batch schedule/cancel schedule messages
- Remove use of "Batch" in Peek/Receive methods.
- Add Message/Messages suffix to Peek/Send/Receive/Abandon/Defer/Complete/DeadLetter methods.
- Rename ServiceBusSender.CreateBatch to ServiceBusSender.CreateMessageBatch
- Rename CreateBatchOptions to CreateMessageBatchOptions
- Rename ServiceBusMessageBatch.TryAdd to ServiceBusMessageBatch.TryAddMessage
- Change output list type from IList to IReadOnlyList
- Removed ServiceBusException.FailureReason.ClientClosed in favor of throwing ObjectDisposedException
Thank you to our developer community members who helped to make the Service Bus client library better with their contributions and design input for this release:
- Add the ServiceBusManagementClient for CRUD operations on a namespace
- Add constructor for ServiceBusMessage taking a string
- Use the BinaryData type for ServiceBusMessage.Body
- Add diagnostic tracing
- Introduce ServiceBusSessionReceiverOptions/ServiceBusSessionProcessorOptions for creating ServiceBusSessionReceiver/ServiceBusSessionProcessor
- Make ServiceBusReceivedMessage.Properties IReadOnlyDictionary rather than IDictionary
Thank you to our developer community members who helped to make the Service Bus client library better with their contributions and design input for this release:
- Allow specifying a list of named sessions when using ServiceBusSessionProcessor
- Transactions/Send via support
- Add SessionInitializingAsync/SessionClosingAsync events in ServiceBusSessionProcessor
- Do not attempt to autocomplete messages with the processor if the user settled the message in their callback
- Add SendAsync overload accepting an IEnumerable of ServiceBusMessage
- Various performance improvements
(A community contribution, courtesy of danielmarbach) - Improve the way exception stack traces are captured
(A community contribution, courtesy of danielmarbach)
- Change from using a static factory method for creating a sendable message from a received message to instead
using a constructor
(A community contribution, courtesy of danielmarbach) - CreateSessionProcessor parameter sessionId renamed to sessionIds (also changed from string to params string array).
- Remove cancellation token from CreateProcessor and CreateSessionProcessor
(A community contribution, courtesy of danielmarbach) - Rename SendBatchAsync to SendAsync
- Add SenderOptions parameter to CreateSender method.
- Initial preview for new version of Service Bus library.
- Includes sending/receiving/settling messages from queues/topics and session support.