日期:2014-05-19  浏览次数:20354 次

如何在c#中访问messagequeue的死信队列? - .NET技术 / C#
如何在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);