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

Рон*_*лэр 2 c# properties message-queue journal

我有一个启用了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();

    }

}
Run Code Online (Sandbox Code Playgroud)

为什么我无权访问该物业?谁可以帮忙?非常感谢!

A J*_*A J 7

您可以使用

msgQueue.MessageReadPropertyFilter.SetAll();
Run Code Online (Sandbox Code Playgroud)

它会将所有过滤器属性设置为true.