MSMQ пользовательские очереди мертвых писем - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь создать настраиваемую очередь недоставленных сообщений для моего MSMQ.Кто-нибудь знает, как это сделать без использования WCF?По умолчанию все сообщения, поступающие в системную очередь недоставленных сообщений (@"formatname:DIRECT=OS:.\system$;DeadXact")

Код, использованный мной для создания этой очереди:

  _msmq = MessageQueue.Create(qname, true);

  _msmq.SetPermissions(new SecurityIdentifier(WellKnownSidType.WorldSid, null).Translate(typeof(NTAccount)).ToString(), MessageQueueAccessRights.FullControl);
  _msmq.MessageReadPropertyFilter.TimeToBeReceived = true;
  _msmq.MessageReadPropertyFilter.ArrivedTime = true;
  _msmq.DefaultPropertiesToSend.UseDeadLetterQueue = true;
  _msmq.Formatter = new XmlMessageFormatter(new Type[] { typeof(String) });
  _msmq.Label = _queueName;

И код, используемый для постановки в очередь сообщений:

  if (timeToBeReceived != null)
    _msmq.DefaultPropertiesToSend.TimeToBeReceived = timeToBeReceived;
  else
    _msmq.DefaultPropertiesToSend.TimeToBeReceived = Message.InfiniteTimeout;
  transaction.Begin();
  _msmq.Send(enqueuedElement, transaction);
  transaction.Commit();
...