2013-02-12 3 views
2

У меня есть MSMQ с включенным журналом. И из-за того, что мы получаем более 1000 сообщений в день, я хочу очистить журнал, чтобы сохранить только сообщения за последние 2 дня. Поэтому я хочу прочитать все сообщения и проверить их свойство SentTime на «текущую дату - 2 дня». Но в настоящий момент программа остановится, поскольку свойство SentTime не будет предоставлено.чтение очереди сообщений отправлено из MSMQ Journal

Ошибка: "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; Thats all! –

+0

Спасибо за ур Вопрос также для вашего ответа ... – Vishnu

ответ

6

Вы можете использовать

msgQueue.MessageReadPropertyFilter.SetAll(); 

и он установит все свойства фильтра к истине.

+0

Фу ... царапал мне голову этим! –

Смежные вопросы