c# - 无法使用 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的行为有什么不同吗?
解决方案
根据此IBM 知识中心页面末尾的评论:为 .NET Standard 安装 IBM MQ 类。amqmdnetstd.dll的v9.1.4似乎存在问题- 发布在nuget上。
大多数人似乎通过降级来解决这个问题。这需要您下载以前版本的客户端并将 dll 包含在您的项目中,因为 IBM 仅从 v9.1.4 开始发布到 nuget。
推荐阅读
- python - 如何在此代码中实现 TOU 费率?
- tcl - 字符串映射适用于文字但不适用于变量
- docker - "make all -j"$(nproc)" 命令在 Docker 容器中有效,但在 Dockerfile 中无效
- apache-spark - Spark从多列DataFrame批量写入Kafka主题
- java - 将 BitSet 转换为具有相同表示的 byte[]
- php - 以概率选择 RAND()
- php - 怎样才能获得价值?结果如下: Array ( [] => 2018 )
- android - 与 Firebase 相关的 Android 清单合并错误
- javascript - 为什么 JavaScript Date 构造函数在这个数字上失败,但作为一种方法工作得很好
- kubernetes - 如何更改 Kubernetes 中运行的 Pod 限制?