gpt4 book ai didi

c# - 通过 .net 客户端通过 SSL 连接到 IBM MQ

转载 作者:行者123 更新时间:2023-11-30 17:45:59 26 4
gpt4 key购买 nike

我正在尝试通过 .NET 客户端连接到 MQ 服务器队列。我需要使用证书进行安全通信。这是我的代码:

MQEnvironment.SSLKeyRepository = "*SYSTEM";
MQEnvironment.ConnectionName = connectionName;
MQEnvironment.Channel = channelName;
MQEnvironment.properties.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_MANAGED);
MQEnvironment.SSLCipherSpec = "TLS_RSA_WITH_AES_256_CBC_SHA";

queueManager = new MQQueueManager(queueManagerName, channelName, connectionName);

queue = queueManager.AccessQueue(SendQueueName,MQC.MQOO_OUTPUT + MQC.MQOO_FAIL_IF_QUIESCING);
queueMessage = new MQMessage();
queueMessage.WriteString(message);
queueMessage.Format = MQC.MQFMT_STRING;
queue.Put(queueMessage, new MQPutMessageOptions());

每次我尝试将消息放入队列时,我都会收到此错误消息

Reason Code: 2059
MQexp.Message: MQRC_Q_MGR_NOT_AVAILABLE

我已经检查了我的队列管理器名称、队列名称等变量,它们都是正确的。我还能够在没有 SSL 的情况下连接到不同的队列,我相信我的代码没有提供足够的信息来建立成功的连接。

如有任何帮助,我们将不胜感激。

谢谢,库纳尔

最佳答案

我有同样的问题和错误信息。启用跟踪后,我能够隔离问题。我一直想知道,客户如何从商店中选择正确的客户证书。跟踪输出显示如下:

000001B2 15:53:46.828145   20776.10    Created an instance of SSLStreams
000001B3 15:53:46.828145 20776.10 Setting current certificate store as 'Computer'
000001B4 15:53:46.828145 20776.10 Created store object to access certificates
000001B5 15:53:46.834145 20776.10 Opened store
000001B6 15:53:46.834145 20776.10 Accessing certificate - ibmwebspheremqmyusername
000001B7 15:53:46.835145 20776.10 TLS12 supported - True
000001B8 15:53:46.837145 20776.10 Setting SslProtol as Tls
000001B9 15:53:46.837145 20776.10 Starting SSL Authentication

在我的例子中,我必须将客户端证书的友好名称设置为 ibmwebspheremqmyusername(将“myusername”替换为您的用户标识)并在还有代码:

properties.Add(MQC.MQCA_CERT_LABEL, "ibmwebspheremqmyusername");  

要启用跟踪,请将以下内容添加到您的 app.config/web.config,其中路径指向包含名为 mqtrace.config 的文件的位置:

<appSettings>
<add key="MQTRACECONFIGFILEPATH" value="C:\MQTRACECONFIG" />
</appSettings>

mqtrace.config示例内容(指定目录必须提前存在):

<?xml version="1.0" encoding="utf-8"?>
<traceSettings>
<MQTRACELEVEL>2</MQTRACELEVEL>
<MQTRACEPATH>C:\MQTRACEPATH</MQTRACEPATH>
<MQERRORPATH>C:\MQERRORLOGPATH</MQERRORPATH>
</traceSettings>

这里有一些详细信息的链接:

追踪:
https://www.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.dev.doc/q123550_.htm为什么标签:
http://www-01.ibm.com/support/docview.wss?uid=swg21245474

关于c# - 通过 .net 客户端通过 SSL 连接到 IBM MQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26898528/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com