Я пытаюсь подключиться к клиенту IBM MQ Queue Queue -Manager из приложения .NET, использующего IBM.XMS (xms.net), а не SSL. < /p>
Я поместил сертификат клиента (.crt) в доверенные корневые власти в составе сертификатов Windows. MQRC_Q_MGR_NOT_AVAILABLE
Пример кода: < /p>
using IBM.XMS;
using System;
class Program
{
static void Main()
{
try
{
Console.WriteLine("Setting environment variable MQSSLKEYR...");
// Environment.SetEnvironmentVariable("MQSSLKEYR", @"C:\Users\ShivamK\Desktop\Dev\AA_Certificates\dev\dev\keystore"); // Without extension
Console.WriteLine("Creating XMS Factory...");
XMSFactoryFactory factoryFactory = XMSFactoryFactory.GetInstance(XMSC.CT_WMQ);
IConnectionFactory connectionFactory = factoryFactory.CreateConnectionFactory();
// Connection properties
connectionFactory.SetStringProperty(XMSC.WMQ_HOST_NAME, "xxx.xx.com");
connectionFactory.SetIntProperty(XMSC.WMQ_PORT, 1444);
connectionFactory.SetStringProperty(XMSC.WMQ_CHANNEL, "ABCD.01");
connectionFactory.SetIntProperty(XMSC.WMQ_CONNECTION_MODE, XMSC.WMQ_CM_CLIENT);
connectionFactory.SetStringProperty(XMSC.WMQ_QUEUE_MANAGER, "EMMMQQ");
// SSL
connectionFactory.SetStringProperty(XMSC.WMQ_SSL_CIPHER_SPEC, "TLS_RSA_WITH_AES_128_CBC_SHA256");
// Auth
connectionFactory.SetStringProperty(XMSC.USERID, "S10147878");
connectionFactory.SetStringProperty(XMSC.PASSWORD, "B7hkhkjk");
Console.WriteLine("Creating Connection...");
using IConnection connection = connectionFactory.CreateConnection();
using ISession session = connection.CreateSession(false, AcknowledgeMode.AutoAcknowledge);
IDestination destination = session.CreateQueue("queue:///CGOOPSHDLG.XYZ.OPSDATA.01");
using IMessageConsumer consumer = session.CreateConsumer(destination);
connection.Start();
Console.WriteLine("Waiting for a message...");
IMessage message = consumer.Receive(10000); // wait for 10s
if (message is ITextMessage textMessage)
Console.WriteLine($"Received message: {textMessage.Text}");
else
Console.WriteLine("No message received or message not text.");
connection.Stop();
}
catch (XMSException ex)
{
Console.WriteLine("XMS Exception: " + ex.Message);
if (ex.LinkedException != null)
Console.WriteLine("Linked Exception: " + ex.LinkedException.Message);
}
catch (Exception ex)
{
Console.WriteLine("General Exception: " + ex.Message);
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... ertificate
IBM MQ 2059 (MQRC_Q_MGR_NOT_AVAILABLE) Ошибка в .NET с использованием XMS с настройкой SSL на основе сертификации ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение