Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# GetInstance(XMSC.CT_WMQ)返回致命错误:未能初始化XMSFactoryFactory_C#_Ibm Mq_Xms - Fatal编程技术网

C# GetInstance(XMSC.CT_WMQ)返回致命错误:未能初始化XMSFactoryFactory

C# GetInstance(XMSC.CT_WMQ)返回致命错误:未能初始化XMSFactoryFactory,c#,ibm-mq,xms,C#,Ibm Mq,Xms,我正在尝试使用.net和MQ client v8.0.0.5连接到IBM消息队列,但一直收到以下错误: 致命错误。未能初始化XMSFactoryFactory 无法加载文件或程序集“IBM.XMS.Client.Impl,Version=8.0.0.5, 文化=中性,PublicKeyToken=d2666ab12fca862b'或其 依赖关系 系统找不到该文件 指定。“:”IBM.XMS.Client.Impl,版本=8.0.0.5,区域性=中性, PublicKeyToken=d2666ab

我正在尝试使用.net和MQ client v8.0.0.5连接到IBM消息队列,但一直收到以下错误:

致命错误。未能初始化XMSFactoryFactory

无法加载文件或程序集“IBM.XMS.Client.Impl,Version=8.0.0.5, 文化=中性,PublicKeyToken=d2666ab12fca862b'或其 依赖关系

系统找不到该文件 指定。“:”IBM.XMS.Client.Impl,版本=8.0.0.5,区域性=中性, PublicKeyToken=d2666ab12fca862b

以下是我迄今为止所做的工作:

  • 在我的计算机上安装了MQ客户端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。

是的,最有可能的原因是GAC中没有MQ v8.0.0.5 XMS.NET程序集


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

是的,最可能的原因是MQV8.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中解决了该错误,与我对其他程序集所做的相同。问题解决了,我现在可以读/写消息到队列中了。这对我来说已经做到了。更新app.config以添加“IBM.XMS.Client.Impl.dll”的文件引用后,代码开始为其他程序集抛出相同的错误。在我一个接一个地添加它们之后,代码开始抛出一个不同的错误,我没有记下来。我在MQ文件夹中运行'amqiRegisterdotNet.cmd'将v8.0.0.5程序集注册到GAC。在那之后,我收到了另一个错误,我通过将程序集'amqmdnet.dll'添加到app.config中解决了该错误,与我对其他程序集所做的相同。问题解决后,我现在可以读取/写入队列中的消息。