C# .NET客户端通过SSL连接到IBM MQ

C# .NET客户端通过SSL连接到IBM MQ,c#,ibm-mq,C#,Ibm Mq,我从我们的客户机获得了关键文件,需要使用它们通过SSL连接到MQ。我们从客户处获得的文件包括: xxx.crl xxx.kdb xxx.rdb xxx.sth xxx.tab 我得到的错误是: Message=“MQRC\u Q\u MGR\u NAME\u错误” 我还尝试了远程登录服务器,这是我能够做到的 有什么能帮我的吗?我在这里做错了什么,为什么会出错。 首先,您需要在appsettings中输入键“” 将connections表放在一个目录中 引入环境变量:MQCHLLIB->P

我从我们的客户机获得了关键文件,需要使用它们通过SSL连接到MQ。我们从客户处获得的文件包括:

xxx.crl xxx.kdb xxx.rdb xxx.sth xxx.tab 我得到的错误是:

Message=“MQRC\u Q\u MGR\u NAME\u错误”

我还尝试了远程登录服务器,这是我能够做到的

有什么能帮我的吗?我在这里做错了什么,为什么会出错。

  • 首先,您需要在appsettings中输入键
    “”

  • 将connections表放在一个目录中

  • 引入环境变量:
    MQCHLLIB->
    Path到表的目录,以及表的文件的
    MQCHLTAB->Name

  • 在C代码中,使用MQQueueManager构造函数:
    “MQQueueManager oquemng=new MQQueueManager();”
    。该构造函数在CCDT中找到服务器、通道等

  • 在C#代码中,当您需要打开队列来放置消息时, 使用选项
    MQOO_BIND_NOT_FIXED
    打开队列,我使用选项
    MQC.MQOO_OUTPUT+MQC.MQOO_BIND_NOT_FIXED+MQC.MQOO_FAIL_打开队列,如果_QUIESCING
    。 AccessQueue(“队列名称”、“打开选项”)

“MQRC_Q_MGR_NAME_错误”表示您正在成功连接到QMgr,但QMgr的名称与连接请求上的名称不匹配。例如,如果我的连接请求是针对QMGRA的,而我连接到的IP和端口是针对QMGRB的,那么我希望得到您看到的错误。如果我的连接请求没有指定QMgr名称,那么我连接到的任何QMgr都应该接受该连接。因此,您的问题中未显示的环境变量、CCDT文件或代码行似乎正在指定QMgr名称或连接尝试。不幸的是,如果没有更多的信息,就不可能指出其中一个原因

不要担心您获得的user1id。如果这是问题所在,您将收到返回2035 MQRC_授权_错误。直到连接失败后,才会检查ID

这里有一些链接可以帮助你解决这些问题。这些是WMQ v7链接。由于v6在2011年9月已经结束,我希望所有的新开发都在v7上。此外,.NEt类集成到WMQ基础产品中,并且从v7开始完全受支持

MQCONN调用示例

将WebSphere MQ客户端应用程序连接到队列管理器


通过将SSL与WMQ.Net客户端一起使用,我通过设置以下环境变量解决了这个问题。在连接之前

环境变量为MQCHLLIB、MQCHLTAB、MQSSLKEYR-使用Environment.SetEnvironmentVariable-设置值

<add key="MQ_SSL_CERT_PATH" value="D:\Cert\<nameof KDB with out .kdb>" />   
<add key="MQ_CHANNEL_LIB" value="D:\Cert" />  --- Certs location. 
<add key="MQ_CHANNEL_TAB" value="xxx.tab" />
<add key="NMQ_MQ_LIB" value="mqic.dll" />  - **Make sure you give the refarance of this DLL**

---证书位置。
-**确保提供此DLL的重构版本**

设置所有这些之后,只需调用queueManager=new MQQueueManager();-你应该很好

是否可以不设置环境变量而使用.net客户端代码
<add key="MQ_SSL_CERT_PATH" value="D:\Cert\<nameof KDB with out .kdb>" />   
<add key="MQ_CHANNEL_LIB" value="D:\Cert" />  --- Certs location. 
<add key="MQ_CHANNEL_TAB" value="xxx.tab" />
<add key="NMQ_MQ_LIB" value="mqic.dll" />  - **Make sure you give the refarance of this DLL**