Я пытаюсь создать настраиваемую очередь недоставленных сообщений для моего 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();