示例#1
0
        private void CloseMessagingFactory()
        {
            if (_messagingFactory == null)
            {
                return;
            }
            if (_messagingFactory.IsClosed)
            {
                _messagingFactory = null;
                return;
            }

            try
            {
                _messagingFactory
                .CloseAsync()
                .ContinueWith(task =>
                {
                    var ex = task.Exception;
                    if (ex != null)
                    {
                        InternalLogger.Error("Exception closing MessagingFactory [{0}]", ex);
                    }

                    _messagingFactory = null;
                });
            }
            catch (Exception ex)
            {
                InternalLogger.Error("Couldn't close MessagingFactory [{0}]", ex);
            }
        }
示例#2
0
 protected override void OnAbort()
 {
     Microsoft.ServiceBus.Messaging.MessagingFactory messagingFactory = this.MessagingFactory;
     if (messagingFactory != null)
     {
         messagingFactory.Abort();
     }
 }
示例#3
0
        private async Task CreateClient()
        {
            if (_isClosing)
            {
                return;
            }

            if (_messagingFactory == null || _messagingFactory.IsClosed)
            {
                _messagingFactory = await Task <MSSB.MessagingFactory> .Factory
                                    .StartNew(() => _isClosing?null : string.IsNullOrEmpty(ConnectionString)
                                              ?MSSB.MessagingFactory.Create()
                                                  : MSSB.MessagingFactory.CreateFromConnectionString(ConnectionString));
            }

            if (_messagingFactory != null)
            {
                if (_messageSender == null || _messageSender.IsClosed)
                {
                    _messageSender = await _messagingFactory.CreateMessageSenderAsync(TopicOrQueueName);
                }
            }
        }