【问题标题】:Use XMS Webshere Mq without installing MQ client在不安装 MQ 客户端的情况下使用 XML Websphere Mq
【发布时间】:2018-02-22 07:42:38
【问题描述】:

您好,我想使用 XMS 库而不在本地机器上安装 mq 客户端,但是我收到了这些错误。当我检查 ibm 功能集时,他们说我们修复了它,但是如何解决?我也尝试了 8.0.0.7 版本,但错误相同. http://www-01.ibm.com/support/docview.wss?uid=swg1IC89514

            var factoryfactory = XMSFactoryFactory.GetInstance(XMSC.CT_WMQ);
            var connectionfactory = factoryfactory.CreateConnectionFactory();

            connectionfactory.SetStringProperty(XMSC.WMQ_QUEUE_MANAGER, QueueManagerName);
            connectionfactory.SetStringProperty(XMSC.WMQ_HOST_NAME, HostName);
            connectionfactory.SetIntProperty(XMSC.WMQ_PORT, Port);
            connectionfactory.SetStringProperty(XMSC.WMQ_CHANNEL, channelName);
            connectionfactory.SetIntProperty(XMSC.WMQ_BROKER_VERSION, XMSC.WMQ_BROKER_V2);
            connectionfactory.SetIntProperty(XMSC.WMQ_CONNECTION_MODE, XMSC.WMQ_CM_CLIENT_UNMANAGED);

            Console.WriteLine("Creating connection");
            var connection = connectionfactory.CreateConnection();
System.TypeLoadException: Could not load type 'IBM.WMQ.ManagedCommonServices' from assembly 'IBM.XMS.Client.WMQ, Version=8.0.0.6, Culture=neutral, PublicKeyToken=d2666ab12fca862b'.
   at System.Reflection.RuntimeAssembly.GetType(RuntimeAssembly assembly, String name, Boolean throwOnError, Boolean ignoreCase, ObjectHandleOnStack type)

【问题讨论】:

  • 使用 IBM MQ v9.0.5 可再发行客户端,您应该能够使用 XMS.NET
  • @subbaraoc 这就是文档所说的,但我仍然无法正确加载它
  • 您可以尝试在 app.config 文件中添加以下内容
  • @JamesLaPenn 你让它工作了吗?
  • @JoshMc 我做到了!我没有看到 subbaraoc 的答案,但他是对的,我必须做基本相同的事情。我会添加我自己的回答,因为它有点长

标签: ibm-mq


【解决方案1】:

您可以尝试在 app.config 文件中添加以下内容<appSettings> <add key="MQCSCLASS" value="amqmdnet(IBM.WMQ.ManagedCommonServices)"/> </appSettings>– subbaraoc Oct 3 at 16:35

使用 amqmdnet.dll (IBM.WMQ.ManagedCommonServices) 作为通用默认值 对 XMS 使用 IBM.XMS.Client.WMQ.dll (IBM.XMS.Client.WMQ.XmsManagedCommonServices)。

这将强制客户端库直接加载公共服务类。此类必须存在于其中一个搜索位置。例如:当前工作目录、GAC、...

【讨论】:

    【解决方案2】:

    我使用 XMS.NET,所以我还需要做一些事情。 首先,您必须使用正确版本的库才能使其正常工作。

    查看 XMS 库的反编译源后,我发现初始化调用会查看您的 App.config 文件中的 MQCSCLASS 属性,正如其他人所提到的那样。

    因此需要为该属性添加适当的类,我必须使用以下内容:

    您需要拥有至少 9.0.5 版的 IBM XMS Redistributable MQ 库。 您需要为您的设置专门配置客户端库,文档概述了该过程。 除了 amqmdnet.dll 之外,您还需要引用 XMS.NET 库

    【讨论】:

      【解决方案3】:

      不,目前不可能。必须安装 MQ 客户端才能使用 XMS,因为 XMS 使用底层 MQ .NET 程序集来连接到队列管理器。

      【讨论】:

      • 我从 nuget 下载程序集?如果只有 dll 需要从 xms 到那个时候我可以找到添加到我的项目。为什么我需要 mq 客户端来达到这个目的
      • 你从 Nuget 下载了什么? XMS 程序集依赖于 MQ .net 程序集,而 MQ .net 程序集是 MQ 客户端的一部分。
      • 我相信这个答案已经过时了
      猜你喜欢
      • 2023-03-28
      • 1970-01-01
      • 2016-02-02
      • 1970-01-01
      • 2019-01-28
      • 2016-10-31
      • 1970-01-01
      • 1970-01-01
      • 2011-07-22
      相关资源
      最近更新 更多