我正在开发一个 .net 核心应用程序来连接 ibm mq。 由于某些客户端限制,我们被限制安装 Ibm mq 客户端。 我正在使用 amqmdnetstd.dll(9.3.2.0) 进行连接。
请注意,ibm mq 服务器和应用程序在不同的系统中。
下面是我用于连接的代码片段:
MQQueue objMQQueue;
MQMessage objPutMQMessage;
MQMessage objReadMQMessage;
MQQueueManager objMQQueueManager;
string SSLCipher = string.Empty;
string SLLKey = string.Empty;
string QueueManager = string.Empty;
string QueueChannel = string.Empty;
string ConnectionName = string.Empty;
SSLCipher = ibmOptions.SSLCipher;
SLLKey = ibmOptions.SLLKey;
X509Certificate2 certificate = new X509Certificate2(SLLKey, ibmOptions.SLLKeyPassword);
Hashtable properties = new Hashtable();
properties.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_MANAGED);
properties.Add(MQC.SSL_CERT_STORE_PROPERTY, certificate);
Console.WriteLine(DateTime.Now.ToLongTimeString() + " Certificate object " + JsonConvert.SerializeObject(certificate));
QueueManager = ibmOptions.QueueManager;
QueueChannel = ibmOptions.QueueChannel;
ConnectionName = ibmOptions.ConnectionName;
MQEnvironment.SSLCipherSpec = SSLCipher; //SSL Encryption Method
MQEnvironment.properties.Add("KeyRepository", properties);
objMQQueueManager = new MQQueueManager(QueueManager, QueueChannel, ConnectionName);
objMQQueue = objMQQueueManager.AccessQueue("FTS.FCUBS.IN.UAT", MQC.MQOO_OUTPUT + MQC.MQOO_FAIL_IF_QUIESCING);
objPutMQMessage = new MQMessage();
//UTF-8 character encoding
objPutMQMessage.CharacterSet = 1208;
objPutMQMessage.WriteString("Test data");
objPutMQMessage.Format = MQC.MQFMT_STRING;
objPutMQMessage.MessageType = MQC.MQMT_REQUEST;
objPutMQMessage.Report = MQC.MQRO_COPY_MSG_ID_TO_CORREL_ID;
objPutMQMessage.ReplyToQueueName = "FTS.FCUBS.OUT.UAT";
objMQQueue.Put(objPutMQMessage);
objMQQueueManager.Commit();
if (objMQQueue.OpenStatus)
{
objMQQueue.Close();
}
我收到类似 dspmqver Command not found 的错误。我知道这个错误是由于应用程序服务器没有安装客户端库造成的。有没有不用安装客户端就可以解决的方法