首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

怎么在c#中访问messagequeue的死信队列?

2012-01-18 
如何在c#中访问messagequeue的死信队列? - .NET技术 / C#如何在c#中访问messagequeue的死信队列?我要查看

如何在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);


                                                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的,是否跟这个有关系?


[解决办法]
学习
[解决办法]
你需要安装系统队列这个服务才可以

是一个windows的组件
[解决办法]
首先组件安装了吗?到消息队列里面看看消息在不在

热点排行