Мы переходим на Windows 2008 R2 Standard и будем использовать конфигурацию Microsoft Clustering (активный-пассивный). Наше приложение сильно зависит от частных очередей MSMQ, и наша установка создает более 100 частных очередей с использованием следующего кода C#.
MessageQueue.Create(".\private$\myqueue", false);
Поскольку установка не выполняется в контексте кластера, очереди создаются на локальном узле, а не в кластере.
Затем мы попытались изменить код на:
MessageQueue.Create("ИМЯ КЛАСТЕРА\private$\myqueue", false);
Однако вы не можете создавать частные очереди на другом сервере (в данном случае в контексте сервера кластера), и вы получаете сообщение об ошибке «Недопустимое имя пути к очереди».
У меня два вопроса: 1) Есть ли способ запустить установку в контексте кластера, чтобы при создании частной очереди она фактически создавала очередь в кластере?
2) Если нет, то как лучше всего создавать очереди в кластере через .NET? Я читал некоторые блоги, в которых люди создают службу Windows-посредника, которая находится внутри кластера, а затем их установка использует межпроцессное взаимодействие, чтобы сообщить службе, какие очереди создавать. Это похоже на взлом, но выполнимо, если это окажется единственным подходом.