2013-02-12 185 views
2

我有一个启用日志的MSMQ。由于我们每天收到超过1000封邮件,因此我想清除日记以仅保留最近2天的邮件。因此,我想阅读所有消息,并根据“当前日期 - 2天”检查其SentTime属性。但目前该程序将停止,因为不会提供Property SentTime。从MSMQ日志中读取消息队列发送时间

错误: “PropertyFilter设置不正确”

代码:

class Program { 

    static void Main(string[] args) { 

     string queueName = ".\\private$\\TEST;journal"; 

     MessageQueue msgQueue = new MessageQueue(queueName); 
     Message[] messages = msgQueue.GetAllMessages(); 

     try{ 

      foreach (Message msg in messages){ 
       //if(msg.SentTime < DateTime.Today.AddDays(-2)){ 
        Console.WriteLine(msg.SentTime); 
       //} 
      } 

     }catch (Exception e){ 

      Console.WriteLine(e.Message); 

     } 

     Console.Read(); 

    } 

} 

为什么我到物业进不去? 谁可以帮忙? 非常感谢!

+1

我可以自己回答我的问题。属性过滤器将被设置为: msgQueue.MessageReadPropertyFilter.SentTime = true; 这就是全部! – 2013-02-12 09:04:01

+0

感谢您的问题也为您的答案... – Vishnu 2013-10-01 06:15:08

回答

6

您可以使用

msgQueue.MessageReadPropertyFilter.SetAll(); 

,这将设置所有过滤器属性设置为true。

+0

P ...一直在抓我的头! – 2014-09-26 09:28:12