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

2024-04-18

我正在尝试通过 .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

就我而言,我必须设置客户端证书的友好名称至 ibmwebspheremq我的用户名(将“用户名”替换为您的用户 ID)并在代码中设置标签:

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>

以下是一些了解更多详细信息的链接:

Tracing:
https://www.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.dev.doc/q123550_.htm 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 http://www-01.ibm.com/support/docview.wss?uid=swg21245474

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 .net 客户端通过 SSL 连接到 IBM MQ 的相关文章

随机推荐

  • 带有任务的欧拉数

    我想使用这个公式 3k 计算多线程的欧拉数 2 1 3k k 0 但到目前为止我没有得到正确的结果 其中一个问题是 当我使用相当大的数字时 我超出了阶乘函数的小数范围 这就是我的结果到目前为止已经完成了 static void Main s
  • JS:Array.map不添加到数组

    我有一些数据想要使用Array prototype map 但是 在映射函数中 外部函数调用可能会引发错误 我想捕获此错误 并且不将该特定对象添加到返回的数组中 目前我只是返回未定义然后使用Array prototype filter清除未
  • 从中心以顺时针方向扩展的螺旋打印二维数组

    我有保证成为完美方阵 我想从矩阵的中心开始 在这种情况下它是matrix 2 2 我知道如何计算中心 int dimensions 2 我需要在下面输出数组的内容向外螺旋图案 当然 该算法应该适用于任何完美的方阵 我不确定这个算法是否已经存
  • Pandas:解散数据框以添加任意数量的列?

    我有一个数据框df在 Pandas 中看起来像这样 stores product discount Westminster 102141 T Westminster 102142 F City of London 102141 T City
  • c - 将 uint8_t* 转换为 uint32_t* 行为

    我读过这个问题 将 uint8 转换为 uint32 如何工作 https stackoverflow com questions 28603243 how does casting uint8 to uint32 work但我不确定给出的
  • 标准库中聚合可初始化性的类型特征?

    C 标准库有std is constructible
  • 在 Eclipse 之外使用 Maven

    我已经在 Eclipse 之外使用 Maven 但想使用 Eclipse 作为我的主编辑器 我不想使用已经嵌入 M2E 的 Maven 我想使用位于 usr bin mvn 的我的 在 Window gt Preferences 下 我尝试
  • 从 JDBC 结果集中获取 XML 的最佳方法

    我正在寻找从 JDBC 结果集中获取 XML 文档的最佳方法 XML 的结构并不是非常重要 但它应该相当快 为了清楚起见 我想要结果集中的数据和足够的元数据来识别数据 本质上是字段名称 我目前正在使用 MySQL DB2 SQL Serve
  • 礼品卡/借记卡激活

    一般问题 零售机构如何限制礼品卡或预付费电话 借记卡的激活 他们必须有一个系统 只能阻止您打电话激活未通过收银机扫描的卡 而且我认为零售 ERP 会计系统中必须内置一个标准解决方案 它可能涉及 Web 服务或 EDI 具体问题 我问这一切是
  • “破坏对象”的variable = null从何而来?

    在许多不同的公司中 我在使用各种 NET 版本编写的许多遗留系统上工作 不断发现以下模式的示例 public void FooBar object foo null object bar null try foo new object ba
  • “用户模板”未显示在“新项目”窗口中 - Xcode 4

    我最近从 SDL 网站下载了两个 SDL 包并将它们移动到相应的文件夹中 在 Library Application Support Developer Shared Xcode Project Templates 中 我创建了一个名为 A
  • 如何在 Python 中使数据正确符合幂律?

    我正在考虑Moby Dick 小说中独特单词的出现次数 http tuvalu santafe edu 7Eaaronc powerlaws data htm并使用powerlaw蟒蛇包 https pythonhosted org pow
  • 在 Interface Builder 中的 View Effects Inspector 中选择 CALayer 有何作用?

    在IB内部 在View Effects Inspector中 有一个设置核心动画层的选项 如果我设置了它会做什么 是否相当于setWantsLayer YES 如果是这样 那么按照苹果文档 https developer apple com
  • Flink 使用 Ceph 作为持久存储

    Flink 文档建议 Ceph 可以用作状态的持久存储 https ci apache org projects flink flink docs release 1 3 dev stream checkpointing html http
  • Django 中多个模型的单个自定义管理器

    我有几个模型通过外键关系相互连接 这种层次结构中的主要层次包含一个owner field 我想创建一个单一定制经理 for 所有这些模型根据调用它的模型更改返回的查询集 我知道经理可以访问self model获取它所附加的模型 Class
  • 编程测试 - Codility - Dominator [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我只是遇到了一个 codility 问题让我很困难 我仍在尝试找出如何满足空间和时间复杂性限制 问题如下 数组中的主导成员是指占据数组
  • 在 Protege 中使用 SPARQL 推断数据

    我正在尝试推断 RDF 数据 假设我有这些三元组 RDF Turtle 是我使用 Protege 创建的 prefix owl
  • 用于 Angular E2E 测试的 Protractor:管理测试数据的最佳方法是什么?

    我是新来的Angular and Protractor 我编写了几个量角器测试用例来自动注册 登录和其他一些页面 要执行测试用例 例如学生注册 我需要传递一些数据 例如姓名 出生日期 年龄 地址等 现在我在测试用例中对这些值进行硬编码 这不
  • 将开发分支与主分支合并

    我有两个分支master and development在 GitHub 存储库中 我正在开发分支中进行所有开发 如图所示 git branch development git add git commit m My initial com
  • 通过 .net 客户端通过 SSL 连接到 IBM MQ

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