【问题标题】:XMSFactoryFactory.GetInstance(XMSC.CT_WMQ) returns Fatal error: Failed to initialize XMSFactoryFactoryXMSFactoryFactory.GetInstance(XMSC.CT_WMQ) 返回致命错误:无法初始化 XMSFactoryFactory
【发布时间】:2017-09-10 06:49:30
【问题描述】:

我正在尝试使用 .net 和 MQ 客户端 v8.0.0.5 连接到 IBM 消息队列,但我不断收到以下错误:

致命错误。 XMSFactoryFactory 初始化失败

无法加载文件或程序集 'IBM.XMS.Client.Impl,版本 = 8.0.0.5, Culture=neutral, PublicKeyToken=d2666ab12fca862b' 或其之一 依赖项。

系统找不到文件 指定。":"IBM.XMS.Client.Impl,版本=8.0.0.5,文化=中性, PublicKeyToken=d2666ab12fca862b

这是我到目前为止所做的:

  • 在我的机器上安装了 MQ Client v8.0.0.5 (x64)。
  • 引用了以下程序集:
  • amqmdnet.dll
  • amqmdnsp.dll
  • amqmdxcs.dll
  • IBM.XMS.dll
  • IBM.XMS.Admin.dll
  • IBM.XMS.Client.Impl.dll
  • IBM.XMS.NLS.dll
  • IBM.XMS.Provider.dll
  • IBM.XMS.Util.dll

现在我的机器上也安装了 v7.5.0.4 版本,连接到队列没有问题。

我注意到的另一件事是 GAC 中没有 v8.0.0.5 的程序集,但存在 v7.5.0.4 的程序集。会是这个原因吗?

很遗憾,在两个版本都正常运行之前,我无法删除 v7.5.0.4。

【问题讨论】:

    标签: c# ibm-mq xms


    【解决方案1】:

    是的,最可能的原因是 MQ v8.0.0.5 XMS .NET 程序集不在 GAC 中。

    您可以查看使用重定向的替代方法,更新 app.config 文件以使用您的应用程序所需的正确版本的程序集。在您的 MQ 安装目录中查找名为 NonPrimaryRedirect.config 的文件。此文件包含应用程序查找特定版本的 MQ/XMS .NET 程序集所需的示例配置。将此文件的内容复制到应用程序的 app.config 文件并尝试。您必须确保所有href 属性都指向正确的路径。

    【讨论】:

    • 这是为我做的。一旦我更新了 app.config 以添加“IBM.XMS.Client.Impl.dll”的文件引用,代码就开始为其他程序集抛出相同的错误。在我一一添加它们之后,代码开始抛出一个不同的错误,我没有记下来。发布我在 MQ 文件夹中运行“amqiRegisterdotNet.cmd”以将 v8.0.0.5 程序集注册到 GAC。之后,我收到了另一个错误,我通过将程序集“amqmdnet.dll”添加到 app.config 解决了这个错误,就像我对其他错误所做的那样。问题解决了,我现在可以在队列中读/写消息了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-20
    • 1970-01-01
    • 1970-01-01
    • 2018-08-17
    相关资源
    最近更新 更多