Как я могу отлаживать сообщения MSMQ, не поступающие на удаленный сервер? - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть некоторый код, который отправляет сообщение в удаленную очередь.

var queue = new MessageQueue(queueName);
var message = new Message(queueMessage, new BinaryMessageFormatter());
queue.Send(message);

Я пытался настроить очередь, используя IP и имя хоста, без разницы:

FormatName: Direct = TCP: 1.2.3.4 \ Private $ \ my.queue
FormatName: Direct = OS: имя_сервера \ Private $ \ my.queue

Сообщения появляются в исходящих сообщениях очередь (если я ее приостановлю)

Когда она не приостановлена, они отправляются на сервер.

На сервере настроена личная очередь. Ничего не работает, что приведет к удалению сообщений из очереди.

Однако сообщения никогда не появляются в очереди на удаленном компьютере. Я не знаю, как отладить эту проблему. Очередь является частной нетранзакционной очередью.

Создание локальной частной очереди и отправка в нее сообщений работает нормально.

Есть ли какие-нибудь журналы или что-то, на что я могу посмотреть, чтобы увидеть, что может быть происходит?

Состояние в исходящих сообщениях показывает состояние как «подключено», поэтому проблема с подключением отсутствует.

Редактировать:

Единственная регистрация, которую я могу найти, находится в средстве просмотра событий. > microsoft> windows> msmq, в которой есть запись, которая просто говорит «Сообщение пришло по сети» всякий раз, когда я отправляю сообщение через MSMQ. У него нет другой информации.

1 Ответ

2 голосов
/ 11 февраля 2020

Решено, я добавил это:

message.UseDeadLetterQueue = true;

Это заставило сервер поместить его в очередь недоставленных сообщений в System Queues > Dead-letter messages

Как только это произошло, я мог Посмотрите мое сообщение и, щелкнув по нему, оно показало «Доступ запрещен» под заголовком «Класс».

Быстрый Google обнаружил, что, хотя я предоставил Everyone разрешения полного доступа к очереди, было необходимо добавьте Anonymous Logon и предоставьте этот полный доступ также на вкладке безопасности очереди.

...