static void Run() { MsmqIntegrationBinding binding = new MsmqIntegrationBinding(); binding.Security.Mode = MsmqIntegrationSecurityMode.None; EndpointAddress address = new EndpointAddress("msmq.formatname:DIRECT=OS:" + Constants.QUEUE_PATH); ChannelFactory<ClassLib.IOrderProcessor> channelFactory = new ChannelFactory<ClassLib.IOrderProcessor>(binding, address); try { ClassLib.IOrderProcessor channel = channelFactory.CreateChannel(); MyOrder order = new MyOrder(); order.ID = DateTime.Now.Ticks.ToString(); order.Name = "Order_" + order.ID; MsmqMessage<MyOrder> ordermsg = new MsmqMessage<MyOrder>(order); using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { channel.SubmitPurchaseOrderInMessage(ordermsg); scope.Complete(); } Console.WriteLine("Order has been submitted:{0}", ordermsg); } finally { channelFactory.Close(); } }
static void Run() { MessageQueue queue = null; MessageQueueTransaction trans = null; try { queue = new MessageQueue(); queue.Path = Constants.QUEUE_PATH; queue.DefaultPropertiesToSend.Recoverable = true; trans = new MessageQueueTransaction(); trans.Begin(); MyOrder order = new MyOrder(); order.ID = DateTime.Now.Ticks.ToString(); order.Name = "Order_" + order.ID; Message msg = new Message(order); queue.Send(msg, trans); trans.Commit(); } catch (Exception ex) { trans.Abort(); } finally { queue.Close(); } Console.WriteLine("message sent.."); }