2

Есть ли способ в MSMQ удалить все частные очереди?

У меня есть тысячи личных очередей на моем компьютере, и я уверен, что большинство, если не все, вызваны плохим поведением приложения, которое каждый раз при запуске создает новую очередь со случайным GUID для своего имени.

Теперь я хочу создать пару других частных очередей для работы с MSMQ. Я обнаружил, что тысячи неиспользуемых существующих очередей не только загромождают представление при открытии личных очередей в инструменте управления компьютером, но я подозреваю, что они являются причиной того, что открытие личных очередей в управлении компьютером занимает много времени на моей машине.

Я могу удалить отдельные очереди, просто выбрав одну и нажав «Удалить», но, похоже, не существует очевидного способа выбора диапазона очередей для удаления вместе.

2 ответа2

0

Вы также можете написать небольшую программу, используя код ниже.

Обратите внимание, что ваш проект должен ссылаться на систему.обмен сообщениями

using System.Messaging;

, ,

,

MessageQueue[] msmques = MessageQueue.GetPrivateQueuesByMachine(".");
foreach (var item in msmques)
{
        MessageQueue.Delete(".\\"+item.QueueName);
}
0

Я не уверен в версии Windows, которую вы используете, но я предполагаю, что у вас установлен MSMQ 3.0. В этом случае вы можете запросить все ваши личные объекты MSMQ, используя VBS и вызывая свойство Private Queues в объекте приложения MSMQ и сохраняя их как вариант.

Затем я бы перебрал ваш вариант и использовал свойство Delete объекта MSMQQueueInfo и удалял каждую очередь.

Надеюсь, это поможет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .