Подключение к удаленному администратору очередей с помощью C# and.Net
я написал приложение, подключенное к локальному администратору очередей, используя этот вызов функции:
MQQueueManager mqQMgr = new MQQueueManager("QM_QueueManagerName");
теперь мне нужно подключиться к удаленному администратору очередей на другом компьютере.
Я могу успешно подключиться к удаленному администратору очередей с помощью MQ Explorer с моего ПК разработки с помощью QM_ComputerName как имя администратора очередей S_ComputerName как канал и Имя_компьютера как имя соединения. Таким образом, он доступен с моего рабочего стола.
однако, когда я пытаюсь подключиться через .Net, я получаю MQRC_Q_MGR_NAME_ERROR независимо от того, что я пытаюсь.
Я попытался указать
MQEnvironment.Hostname = "ComputerName";
MQEnvironment.Channel = "S_ComputerName ";
and then calling
mqQMgr = new MQQueueManager("QM_ComputerName");
I also tried  calling 
mqQMgr = new MQQueueManager("QM_ComputerName", "S_ComputerName", "ComputerName");
я получаю ошибку в обоих случаях.
кто-нибудь может посоветовать?
2 ответов
возможно этот пример кода поможет.
Я связался с документами V7. В идеале вы будете использовать клиент V7 и разговаривать с сервером V7, потому что функциональность .Net значительно улучшена в них по сравнению с V6. Кроме того, V6 заканчивается в сентябре 2011 года, поэтому было бы хорошо перейти прямо на v7 сейчас и избежать обновления позже.
Если вам нужен клиент WMQ v7, который включает обновленные образцы и классы .Net, перейдите в клиент IBM MQ Загрузки страница (требуется IBM ID, но это бесплатная загрузка).
обновление 20180810: изменена ссылка, указывающая на новую страницу IBM для всех загрузок клиентов IBM MQ.
вот как я заставил его работать:
 MQQueueManager mqQMgr=null;
   Hashtable props = new Hashtable();
props.Add(MQC.HOST_NAME_PROPERTY, "HostNameOrIP");
   props.Add(MQC.CHANNEL_PROPERTY, "ChannelName");
   props.Add(MQC.PORT_PROPERTY, 1414); // port number
   props.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_MANAGED);
   MQQueue mqQueue = null;
   try
   {
      mqQMgr = new  MQQueueManager("QueueManagerName", props);
      mqQueue = mqQMgr.AccessQueue(
               QueueName,
               MQC.MQOO_OUTPUT                   // open queue for output
               + MQC.MQOO_FAIL_IF_QUIESCING);   // but not if MQM stopping
   }
   catch (MQException mqe1)
   {
   }