C# GetInstance(XMSC.CT_WMQ)返回致命错误:未能初始化XMSFactoryFactory
我正在尝试使用.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 以下是我迄今为止所做的工作: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
- 在我的计算机上安装了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中没有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中解决了该错误,与我对其他程序集所做的相同。问题解决后,我现在可以读取/写入队列中的消息。