public void testbutton_Click(object sender, EventArgs e) { MessageQueue mq; string queueName = Properties.Settings.Default.MessageQueueName; if (MessageQueue.Exists(queueName)) { mq = new MessageQueue(queueName); } else { mq = MessageQueue.Create(queueName, true); } gateway = new MsmqInGatewayWSService(); MessageQueueTransaction transaction = new MessageQueueTransaction(); //while (running) // { try { transaction.Begin(); System.Messaging.Message message = mq.Receive(new TimeSpan(0, 0, 1), transaction); Console.WriteLine("Message received"); msmqInMessage msmqMsg = new msmqInMessage(); msmqMsg.label = message.Label; Console.WriteLine("Message received333"); msmqMsg.id = message.Id; Console.WriteLine("Message received222"); msmqMsg.body = readFully(message.BodyStream); Console.WriteLine("Commit"); transaction.Commit(); messageList.Items.Add(msmqMsg.label); messageQueues.Add(msmqMsg.id, msmqMsg); } catch (MessageQueueException mqe) { if (mqe.MessageQueueErrorCode != MessageQueueErrorCode.IOTimeout) Console.WriteLine("MessageQueue failure: " + mqe.Message); } finally { if (transaction.Status == MessageQueueTransactionStatus.Pending) { transaction.Abort(); } } // } }
public Listener() { string queueName = Properties.Settings.Default.MessageQueueName; if (MessageQueue.Exists(queueName)) { mq = new MessageQueue(queueName); } else { mq = MessageQueue.Create(queueName, true); } mq.MessageReadPropertyFilter.ArrivedTime = true; mq.MessageReadPropertyFilter.SentTime = true; mq.MessageReadPropertyFilter.Priority = true; mq.MessageReadPropertyFilter.CorrelationId = true; mq.MessageReadPropertyFilter.Id = true; mq.MessageReadPropertyFilter.SenderId = true; gateway = new MsmqInGatewayWSService(); }