本文整理汇总了C#中System.Messaging.MessageQueue.GetTransactionType方法的典型用法代码示例。如果您正苦于以下问题:C# MessageQueue.GetTransactionType方法的具体用法?C# MessageQueue.GetTransactionType怎么用?C# MessageQueue.GetTransactionType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Messaging.MessageQueue
的用法示例。
在下文中一共展示了MessageQueue.GetTransactionType方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: MoveTimeoutToMainQueue
/// <summary>
/// Moves the message from the timeout queue to the main queue.
/// </summary>
/// <param name="queue">The queue.</param>
/// <param name="messageId">The message id.</param>
public void MoveTimeoutToMainQueue(MessageQueue queue, string messageId)
{
var fullSubQueueName = queue.Path + ";timeout";
using (var timeoutQueue = new MessageQueue(fullSubQueueName, QueueAccessMode.Receive))
{
var message = timeoutQueue.ReceiveById(messageId, queue.GetTransactionType());
message.AppSpecific = 0;//reset timeout flag
queue.Send(message, queue.GetTransactionType());
}
}
示例2: MoveTimeoutToMainQueue
/// <summary>
/// Moves the message from the timeout queue to the main queue.
/// </summary>
/// <param name="queue">The queue.</param>
/// <param name="messageId">The message id.</param>
public void MoveTimeoutToMainQueue(MessageQueue queue, string messageId)
{
using (var destinationQueue = new MessageQueue(GetTimeoutQueuePath(), QueueAccessMode.Receive))
{
var message = destinationQueue.ReceiveById(messageId, queue.GetTransactionType());
message.AppSpecific = 0;//reset timeout flag
queue.Send(message, destinationQueue.GetTransactionType());
}
}
示例3: MoveToErrorQueue
private void MoveToErrorQueue(MessageQueue queue, Message message, string exceptionText)
{
queueStrategy.MoveToErrorsQueue(queue, message);
var label = "Error description for " + message.Label;
if (label.Length > 249)
label = label.Substring(0, 246) + "...";
queue.Send(new Message
{
AppSpecific = (int)MessageType.ErrorDescriptionMessageMarker,
Label = label,
Body = exceptionText,
CorrelationId = message.Id,
}, queue.GetTransactionType());
logger.WarnFormat("Moving message {0} to errors subqueue because: {1}", message.Id,
exceptionText);
}
示例4: MoveToErrorsQueue
/// <summary>
/// Moves the <paramref name="message"/> to errors queue.
/// </summary>
/// <param name="queue">The queue.</param>
/// <param name="message">The message.</param>
public void MoveToErrorsQueue(MessageQueue queue, Message message)
{
using (var destinationQueue = new MessageQueue(GetErrorsQueuePath(),QueueAccessMode.Send))
{
destinationQueue.Send(queue.ReceiveByLookupId(message.LookupId),
queue.GetTransactionType());
}
}
示例5: SendMessageToQueue
private void SendMessageToQueue(Message message, Uri uri)
{
if (haveStarted == false)
throw new TransportException("Cannot send message before transport is started");
string sendQueueDescription = MsmqUtil.GetQueuePath(uri);
try
{
using (var sendQueue = new MessageQueue(
sendQueueDescription,
QueueAccessMode.Send))
{
MessageQueueTransactionType transactionType = sendQueue.GetTransactionType();
sendQueue.Send(message, transactionType);
logger.DebugFormat("Send message {0} to {1}", message.Label, uri);
}
}
catch (Exception e)
{
throw new TransactionException("Failed to send message to " + uri, e);
}
}