本文整理汇总了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);
}
}
示例2: Purge
public void Purge()
{
using (var queue = new MessageQueue(_address.LocalName, QueueAccessMode.ReceiveAndAdmin))
{
queue.Purge();
}
}
示例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();
}
}
示例4: PurgeQueue
private static void PurgeQueue(string queuePath)
{
using (var queue = new MessageQueue(queuePath))
{
queue.Purge();
}
}
示例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));
}
示例6: PurgeSubqueue
private static void PurgeSubqueue(string queuePath, string subqueueName)
{
using (var queue = new MessageQueue(queuePath + ";" + subqueueName))
{
queue.Purge();
}
}
示例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
}
示例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;
}
示例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();
}
}
示例10: ClearMessage
public void ClearMessage()
{
if (MessageQueue.Exists(QueuePath))
{
MessageQueue queue = new MessageQueue(QueuePath);
queue.Purge();
}
}
示例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");
}
示例12: Reset
public static void Reset()
{
if (!MessageQueue.Exists(Queue.Name))
MessageQueue.Create(Queue.Name);
else
{
var queue = new MessageQueue(Queue.Name);
queue.Purge();
}
}
示例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();
}
}
示例14: DoSetUp
protected override void DoSetUp()
{
serializer = new JsonMessageSerializer();
senderQueue = new MsmqMessageQueue(SenderQueueName);
destinationQueue = NewRawMsmqQueue(DestinationQueueName);
senderQueue.PurgeInputQueue();
destinationQueue.Purge();
TrackDisposable(senderQueue);
}
示例15: MsmqBehaviorTests
public MsmqBehaviorTests()
{
using (var subqueue = new MessageQueue(testQueuePath + ";errors"))
{
subqueue.Purge();
}
using (var subqueue = new MessageQueue(transactionalTestQueuePath + ";errors"))
{
subqueue.Purge();
}
}