从MSMQ Journal读取消息队列发送时间

时间:2013-02-12 08:32:22

标签: c# properties message-queue journal

我有一个启用了期刊的MSMQ。由于我们每天收到超过1000封邮件这一事实,我想清除期刊以仅保留最近2天的邮件。因此,我想阅读所有邮件,并根据“当前日期 - 2天”检查其SentTime属性。但目前程序将停止,因为不会提供Property SentTime。

错误:“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 个答案:

答案 0 :(得分:6)

您可以使用

msgQueue.MessageReadPropertyFilter.SetAll();

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