Exemple #1
0
        private void SendToErrorQueue(Message obj)
        {
            var errorsEndpoint = new BusEndpoint(LocalEndpoint.MachineName, LocalEndpoint.QueueName + "_errors");
            var errorQueuePath = MsmqEndpointParser.GetQueuePath(errorsEndpoint);
            var errorQueue     = GetOrCreateMessageQueue(errorQueuePath);

            errorQueue.Send(obj);
            errorQueue.Dispose();
        }
Exemple #2
0
        public void Start()
        {
            if (IsRunning)
            {
                return;
            }
            IsRunning = true;
            var queuePath = MsmqEndpointParser.GetQueuePath(LocalEndpoint);

            _localQueue           = GetOrCreateMessageQueue(queuePath);
            _localQueue.Formatter = _messageFormatter;
            StartListening();
        }
Exemple #3
0
        private void Send(object message, BusEndpoint targetEndpoint)
        {
            var queuePath = MsmqEndpointParser.GetQueuePath(targetEndpoint);

            if (!MessageQueue.Exists(queuePath))
            {
                throw new TargetEndpointNotFoundException(string.Format("Unable to reach target endpoint {0}@{1}", targetEndpoint.QueueName, targetEndpoint.MachineName));
            }
            var remoteQueue = new MessageQueue(queuePath, QueueAccessMode.Send);

            if (!remoteQueue.CanWrite)
            {
                throw new UnableToSendMessageException(string.Format("Unable to send message to {0}@{1}", targetEndpoint.QueueName, targetEndpoint.MachineName));
            }
            remoteQueue.SendMessage(WrapInMsmqMessage(message));
        }