/// <summary> /// Closes the consumer. /// </summary> /// /// <param name="cancellationToken">An optional <see cref="CancellationToken"/> instance to signal the request to cancel the operation.</param> /// /// <returns>A task to be resolved on when the operation has completed.</returns> /// public virtual async Task CloseAsync(CancellationToken cancellationToken = default) { cancellationToken.ThrowIfCancellationRequested <TaskCanceledException>(); IsClosed = true; var clientHash = GetHashCode().ToString(); ServiceBusEventSource.Log.ClientCloseStart(typeof(ServiceBusReceiver), EntityName, clientHash); // Attempt to close the transport consumer. In the event that an exception is encountered, // it should not impact the attempt to close the connection, assuming ownership. var transportConsumerException = default(Exception); try { await _innerReceiver.CloseAsync(CancellationToken.None).ConfigureAwait(false); } catch (Exception ex) { ServiceBusEventSource.Log.ClientCloseError(typeof(ServiceBusReceiver), EntityName, clientHash, ex.Message); transportConsumerException = ex; } // If there was an active exception pending from closing the individual // transport consumers, surface it now. if (transportConsumerException != default) { throw transportConsumerException; } }
public virtual async ValueTask DisposeAsync() { IsDisposed = true; ServiceBusEventSource.Log.ClientDisposeStart(typeof(ServiceBusReceiver), Identifier); try { await InnerReceiver.CloseAsync(CancellationToken.None).ConfigureAwait(false); } catch (Exception ex) { ServiceBusEventSource.Log.ClientDisposeException(typeof(ServiceBusReceiver), Identifier, ex); throw; } ServiceBusEventSource.Log.ClientDisposeComplete(typeof(ServiceBusSender), Identifier); }
public virtual async ValueTask DisposeAsync() { IsDisposed = true; Type clientType = GetType(); Logger.ClientDisposeStart(clientType, Identifier); try { await InnerReceiver.CloseAsync(CancellationToken.None).ConfigureAwait(false); } catch (Exception ex) { Logger.ClientDisposeException(clientType, Identifier, ex); throw; } Logger.ClientDisposeComplete(clientType, Identifier); }
/// <summary> /// Closes the receiver. /// </summary> /// /// <param name="cancellationToken">An optional <see cref="CancellationToken"/> instance to signal the request to cancel the operation.</param> /// /// <returns>A task to be resolved on when the operation has completed.</returns> public virtual async Task CloseAsync(CancellationToken cancellationToken = default) { cancellationToken.ThrowIfCancellationRequested <TaskCanceledException>(); IsClosed = true; ServiceBusEventSource.Log.ClientCloseStart(typeof(ServiceBusReceiver), Identifier); try { await _innerReceiver.CloseAsync(CancellationToken.None).ConfigureAwait(false); } catch (Exception ex) { ServiceBusEventSource.Log.ClientCloseException(typeof(ServiceBusReceiver), Identifier, ex); throw; } cancellationToken.ThrowIfCancellationRequested <TaskCanceledException>(); ServiceBusEventSource.Log.ClientCloseComplete(typeof(ServiceBusSender), Identifier); }