首页 > 解决方案 > 无法使用 amqmdnetstd.dll 连接到 MQ

问题描述

我在使用来自 NuGet 包管理器的amqmdnetstd.dll时执行以下代码时遇到异常“MQRC_Q_MGR_NOT_AVAILABLE” 。但是,当我使用amqmdnet.dll时,我没有遇到任何异常。我想坚持使用 amqmdnetstd.dll 的原因是因为它在 NuGet 包中可用,我可以在任何服务器上部署代码,而不必担心在我部署的每台服务器中安装 IBM Websphere。

        string QueueManagerName = ConfigurationManager.AppSettings["QueueManagername"];
        Hashtable properties = new Hashtable();
        properties.Add(MQC.HOST_NAME_PROPERTY, ConfigurationManager.AppSettings["Connection"]);
        properties.Add(MQC.PORT_PROPERTY, ConfigurationManager.AppSettings["PortNo"]);
        properties.Add(MQC.CHANNEL_PROPERTY, ConfigurationManager.AppSettings["Channelname"]);
        properties.Add(MQC.MQCA_TOPIC_NAME, ConfigurationManager.AppSettings["Queuename"]);
        properties.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_MANAGED);

        queueManager = new MQQueueManager(QueueManagerName, properties);

两个dll的行为有什么不同吗?

标签: c#ibm-mq

解决方案


根据此IBM 知识中心页面末尾的评论:为 .NET Standard 安装 IBM MQ 类。amqmdnetstd.dllv9.1.4似乎存在问题- 发布在nuget上。

大多数人似乎通过降级来解决这个问题。这需要您下载以前版本的客户端并将 dll 包含在您的项目中,因为 IBM 仅从 v9.1.4 开始发布到 nuget。


推荐阅读