如何在c#中访问messagequeue的死信队列?
我要查看死信队列的消息,然后把符合我的条件的消息重新发回原来队列中,代码如下:
/// <summary>
/// 从死信队列恢复消息到队列
/// </summary>
/// <param name="prefix"></param>
public static void ReloadFromDeadLetterQueue(string prefix)
{
prefix = string.Concat(".private$\\", prefix);
MessageQueue deadLetterQueue = new MessageQueue(string.Concat(System.Environment.MachineName , @"\Deadletter$"));
MessageEnumerator e = deadLetterQueue.GetMessageEnumerator2(); Dictionary<string, MessageQueue> messagequeues = new Dictionary<string, MessageQueue>();
MessageQueue queue;
while (e.MoveNext())
{
Message msg = e.Current;
string label = msg.Label;
if (label.StartsWith(prefix,StringComparison.OrdinalIgnoreCase))
{
if (messagequeues.ContainsKey(label))
{
queue = messagequeues[label];
}
else
{
queue = new MessageQueue(label);
messagequeues.Add(label,queue);
}
queue.Send(msg);
}
e.RemoveCurrent();
}
e.Close();
}但它报"UnsupportedOperation 消息正文:“WORKGROUP 安装计算机不支持此操作。”
在 System.Messaging.MessageQueue.GetMachineId(String machineName)
在 System.Messaging.MessageQueue.ResolveFormatNameFromQueuePath(String queuePath, Boolean throwException)
在 System.Messaging.MessageQueue.get_FormatName()我的操作系统是xp的,是否跟这个有关系?
我要查看死信队列的消息,然后把符合我的条件的消息重新发回原来队列中,代码如下:
/// <summary>
/// 从死信队列恢复消息到队列
/// </summary>
/// <param name="prefix"></param>
public static void ReloadFromDeadLetterQueue(string prefix)
{
prefix = string.Concat(".private$\\", prefix);
MessageQueue deadLetterQueue = new MessageQueue(string.Concat(System.Environment.MachineName , @"\Deadletter$"));
MessageEnumerator e = deadLetterQueue.GetMessageEnumerator2(); Dictionary<string, MessageQueue> messagequeues = new Dictionary<string, MessageQueue>();
MessageQueue queue;
while (e.MoveNext())
{
Message msg = e.Current;
string label = msg.Label;
if (label.StartsWith(prefix,StringComparison.OrdinalIgnoreCase))
{
if (messagequeues.ContainsKey(label))
{
queue = messagequeues[label];
}
else
{
queue = new MessageQueue(label);
messagequeues.Add(label,queue);
}
queue.Send(msg);
}
e.RemoveCurrent();
}
e.Close();
}但它报"UnsupportedOperation 消息正文:“WORKGROUP 安装计算机不支持此操作。”
在 System.Messaging.MessageQueue.GetMachineId(String machineName)
在 System.Messaging.MessageQueue.ResolveFormatNameFromQueuePath(String queuePath, Boolean throwException)
在 System.Messaging.MessageQueue.get_FormatName()我的操作系统是xp的,是否跟这个有关系?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货