当前位置: 首页>>代码示例>>C#>>正文


C# MessageQueue.Purge方法代码示例

本文整理汇总了C#中System.Messaging.MessageQueue.Purge方法的典型用法代码示例。如果您正苦于以下问题:C# MessageQueue.Purge方法的具体用法?C# MessageQueue.Purge怎么用?C# MessageQueue.Purge使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.Messaging.MessageQueue的用法示例。


在下文中一共展示了MessageQueue.Purge方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: StartMSMQService

        public static void StartMSMQService()
        {
            msMqRequestDelete = new MessageQueue("FormatName:Direct=OS:" + Environment.MachineName.ToLower() + "\\private$\\requestdeletequeue");
            if (System.Messaging.MessageQueue.Exists(".\\private$\\requestdeletequeue"))
            {
                msMqRequestDelete.Purge();
                if (msMqRequestDelete != null)
                {
                    msMqRequestDelete.BeginReceive();
                }
                msMqRequestDelete.ReceiveCompleted += new ReceiveCompletedEventHandler(mq_ReceiveCompletedRequestTaskKill);
            }
            else
            {
                msMqRequestDelete = System.Messaging.MessageQueue.Create(".\\private$\\requestdeletequeue", true);
            }


            msMqReply = new MessageQueue("FormatName:Direct=OS:" + Environment.MachineName.ToLower() + "\\private$\\requestqueue");
            if (System.Messaging.MessageQueue.Exists(".\\private$\\requestqueue"))
            {
                {
                    msMqReply.Purge();
                    if (msMqReply != null)
                    {
                        msMqReply.BeginReceive();
                    }
                    msMqReply.ReceiveCompleted += new ReceiveCompletedEventHandler(mq_ReceiveCompletedReply);
                }
            }
            else
            {
                msMqReply = System.Messaging.MessageQueue.Create(".\\private$\\requestqueue", true);
            }
        }
开发者ID:cobelab,项目名称:LabRun,代码行数:35,代码来源:Program.cs

示例2: Purge

		public void Purge()
		{
			using (var queue = new MessageQueue(_address.LocalName, QueueAccessMode.ReceiveAndAdmin))
			{
				queue.Purge();
			}
		}
开发者ID:RTroywest,项目名称:MassTransit,代码行数:7,代码来源:MsmqEndpointManagement.cs

示例3: MsmqReceiver

        public MsmqReceiver()
        {
            if (!Address.Local.Machine.Equals(RuntimeEnvironment.MachineName, StringComparison.OrdinalIgnoreCase))
            {
                throw new InvalidOperationException(String.Format("Input queue [{0}] must be on the same machine as this process [{1}].", Address.Local, RuntimeEnvironment.MachineName));
            }

            queue = new MessageQueue(MsmqUtilities.GetFullPath(Address.Local), false, true, QueueAccessMode.Receive);

            var messageReadPropertyFilter = new MessagePropertyFilter
            {
                Body = true,
                TimeToBeReceived = true,
                Recoverable = true,
                Id = true,
                ResponseQueue = true,
                CorrelationId = true,
                Extension = true,
                AppSpecific = true
            };

            queue.MessageReadPropertyFilter = messageReadPropertyFilter;

            if (PurgeOnStartup)
            {
                queue.Purge();
            }
        }
开发者ID:AdrianFreemantle,项目名称:Hermes,代码行数:28,代码来源:MsmqReceiver.cs

示例4: PurgeQueue

 private static void PurgeQueue(string queuePath)
 {
     using (var queue = new MessageQueue(queuePath))
     {
         queue.Purge();
     }
 }
开发者ID:AGiorgetti,项目名称:Prxm.Cqrs,代码行数:7,代码来源:PrepareQueues.cs

示例5: Main

        static void Main(string[] args)
        {
            string path = @".\private$\XactQueue4Demo";
            if(!MessageQueue.Exists(path))
            {
                MessageQueue.Create(path, true);
            }
            var queue = new MessageQueue(path);
            queue.Purge();

            using (ChannelFactory<IGreeting> channelFactoryHello = new ChannelFactory<IGreeting>("greetingService"))
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    IGreeting proxy = channelFactoryHello.CreateChannel();
                    proxy.SayHello("Foo");
                    proxy.SayGoodbye("Bar");
                    (proxy as ICommunicationObject).Close();
                    scope.Complete();
                }
            }
            var message = queue.Receive();
            byte[] buffer = new byte[message.BodyStream.Length];
            message.BodyStream.Read(buffer, 0, buffer.Length);
            Console.WriteLine(Encoding.Default.GetString(buffer));
        }
开发者ID:huoxudong125,项目名称:WCF-Demo,代码行数:26,代码来源:Program.cs

示例6: PurgeSubqueue

 private static void PurgeSubqueue(string queuePath, string subqueueName)
 {
     using (var queue = new MessageQueue(queuePath + ";" + subqueueName))
     {
         queue.Purge();
     }
 }
开发者ID:AGiorgetti,项目名称:Prxm.Cqrs,代码行数:7,代码来源:PrepareQueues.cs

示例7: RecreateMessageQueue

 public static void RecreateMessageQueue(string path, bool transactional)
 {
     bool defaultCacheEnabled = MessageQueue.EnableConnectionCache;
     MessageQueue.ClearConnectionCache();
     MessageQueue.EnableConnectionCache = false;
     if (MessageQueue.Exists(path))
     {
         // TODO (EE): delete/create doesn't work for some reason
         //                MessageQueue.Delete(path);
         //                queue = MessageQueue.Create(path, transactional);
         using (MessageQueue queue = new MessageQueue(path))
         {
             queue.Purge();
         }
     }
     else
     {
         /*
          * MSDN docs indicate that calls to the static .Create() method should include
          *   an explicit call to .Dispose() b/c unmanaged resources are involved
          * Here this req'ment is handled implicitly with the using() statement
          *  even though the empty using() block seems odd at first glance b/c it
          *  encloses a static method call
          */
         using (MessageQueue.Create(path, transactional))
         {
         	
         }
     }
     MessageQueue.ClearConnectionCache();
     MessageQueue.EnableConnectionCache = defaultCacheEnabled; // set to default
 }
开发者ID:fgq841103,项目名称:spring-net,代码行数:32,代码来源:MessageQueueUtils.cs

示例8: Init

        public Task Init(Func<MessageContext, Task> onMessage, Func<ErrorContext, Task<ErrorHandleResult>> onError, CriticalError criticalError, PushSettings settings)
        {
            peekCircuitBreaker = new RepeatedFailuresOverTimeCircuitBreaker("MsmqPeek", TimeSpan.FromSeconds(30), ex => criticalError.Raise("Failed to peek " + settings.InputQueue, ex));
            receiveCircuitBreaker = new RepeatedFailuresOverTimeCircuitBreaker("MsmqReceive", TimeSpan.FromSeconds(30), ex => criticalError.Raise("Failed to receive from " + settings.InputQueue, ex));

            var inputAddress = MsmqAddress.Parse(settings.InputQueue);
            var errorAddress = MsmqAddress.Parse(settings.ErrorQueue);

            if (!string.Equals(inputAddress.Machine, RuntimeEnvironment.MachineName, StringComparison.OrdinalIgnoreCase))
            {
                throw new Exception($"MSMQ Dequeuing can only run against the local machine. Invalid inputQueue name '{settings.InputQueue}'.");
            }

            inputQueue = new MessageQueue(inputAddress.FullPath, false, true, QueueAccessMode.Receive);
            errorQueue = new MessageQueue(errorAddress.FullPath, false, true, QueueAccessMode.Send);

            if (settings.RequiredTransactionMode != TransportTransactionMode.None && !QueueIsTransactional())
            {
                throw new ArgumentException($"Queue must be transactional if you configure the endpoint to be transactional ({settings.InputQueue}).");
            }

            inputQueue.MessageReadPropertyFilter = DefaultReadPropertyFilter;

            if (settings.PurgeOnStartup)
            {
                inputQueue.Purge();
            }

            receiveStrategy = receiveStrategyFactory(settings.RequiredTransactionMode);

            receiveStrategy.Init(inputQueue, errorQueue, onMessage, onError, criticalError);

            return TaskEx.CompletedTask;
        }
开发者ID:Particular,项目名称:NServiceBus,代码行数:34,代码来源:MessagePump.cs

示例9: DoExceptionLog

        /// <summary>
        /// 作者:Vincen
        /// 时间:2013.11.14 PM
        /// 描述:处理异常日志(消息队列)
        /// </summary>
        public static void DoExceptionLog()
        {
            InitQueue(MsmqType.ExceptionLog);

            using (var mq = new MessageQueue(MsmpPath + MsmqType.ExceptionLog))
            {
                var msgs = mq.GetAllMessages();
                foreach (var msg in msgs)
                {
                    try
                    {
                        msg.Formatter = new XmlMessageFormatter(new[] { typeof(ExceptionLogs) });
                        var item = msg.Body as ExceptionLogs;
                        if (null == item)
                        {
                            continue;
                        }
                        ExceptionLogsBLL.CreateExceptionLogs(item);
                    }
                    //记录下(异常)日志信息
                    catch (Exception e)
                    {
                        Common.MSMQ.QueueManager.AddExceptionLog(new ExceptionLogs()
                        {
                            ExceptionType = Utility.CommonHelper.To<int>(ExceptionType.Msmq),
                            Message = string.Format("MSMQ-DoExceptionLog:{0};{1};{2}", e.Message, e.InnerException.Message, e.HelpLink),
                            IsTreat = false,
                            CreateBy = 0,
                            CreateTime = DateTime.Now
                        });
                    }
                }
                mq.Purge();
            }
        }
开发者ID:kylin589,项目名称:EmePro,代码行数:40,代码来源:QueueManager.cs

示例10: ClearMessage

 public void ClearMessage()
 {
     if (MessageQueue.Exists(QueuePath))
     {
         MessageQueue queue = new MessageQueue(QueuePath);
         queue.Purge();
     }
 }
开发者ID:huangkungit,项目名称:msmq-example,代码行数:8,代码来源:MsgQueue.cs

示例11: Purge

 //
 // GET: /Payment/Purge/
 public ActionResult Purge() {
     if (MessageQueue.Exists(".\\Private$\\easyTravelPaymentQueue")) {
         using (MessageQueue mq = new MessageQueue(".\\Private$\\easyTravelPaymentQueue")) {
             mq.Purge();
         }
     } else {
         log.Warn("Can't empty non existing queue \".\\Private$\\easyTravelPaymentQueue\". Enable MSMQPaymentPlugin.net to have Queue created on payment.");
     }
     return RedirectToAction("Index");
 }
开发者ID:daniel-busquets,项目名称:ET21,代码行数:12,代码来源:PaymentController.cs

示例12: Reset

 public static void Reset()
 {
     if (!MessageQueue.Exists(Queue.Name))
         MessageQueue.Create(Queue.Name);
     else
     {
         var queue = new MessageQueue(Queue.Name);
         queue.Purge();
     }
 }
开发者ID:jmptrader,项目名称:Griffin.Logging,代码行数:10,代码来源:Queue.cs

示例13: PurgeQueue

        /// <summary>
        /// Deletes all messages from the queue with the specified name
        /// </summary>
        /// <param name="queueName"></param>
        public static void PurgeQueue(string queueName)
        {
            var path = GetPath(queueName);

            if (!MessageQueue.Exists(path)) return;

            using (var messageQueue = new MessageQueue(path))
            {
                messageQueue.Purge();
            }
        }
开发者ID:geffzhang,项目名称:Rebus,代码行数:15,代码来源:MsmqUtil.cs

示例14: DoSetUp

        protected override void DoSetUp()
        {
            serializer = new JsonMessageSerializer();
            senderQueue = new MsmqMessageQueue(SenderQueueName);

            destinationQueue = NewRawMsmqQueue(DestinationQueueName);

            senderQueue.PurgeInputQueue();
            destinationQueue.Purge();

            TrackDisposable(senderQueue);
        }
开发者ID:nls75,项目名称:Rebus,代码行数:12,代码来源:TestMsmqMessageQueue.cs

示例15: MsmqBehaviorTests

        public MsmqBehaviorTests()
        {
            using (var subqueue = new MessageQueue(testQueuePath + ";errors"))
            {
                subqueue.Purge();
            }

            using (var subqueue = new MessageQueue(transactionalTestQueuePath + ";errors"))
            {
                subqueue.Purge();
            }
        }
开发者ID:brumschlag,项目名称:rhino-tools,代码行数:12,代码来源:MsmqTests.cs


注:本文中的System.Messaging.MessageQueue.Purge方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。