2017-04-14 231 views
0

我試圖使用.net和MQ客戶端v8.0.0.5連接到IBM消息隊列,但我不斷收到以下錯誤:XMSFactoryFactory.GetInstance(XMSC.CT_WMQ)返回致命錯誤:未能初始化XMSFactoryFactory

Fatal error. Failed to initialize XMSFactoryFactory

Could not load file or assembly 'IBM.XMS.Client.Impl, Version=8.0.0.5, Culture=neutral, PublicKeyToken=d2666ab12fca862b' or one of its dependencies.

The system cannot find the file specified.":"IBM.XMS.Client.Impl, Version=8.0.0.5, Culture=neutral, PublicKeyToken=d2666ab12fca862b

這裏是我迄今所做的:我的機器上

  • 安裝MQ客戶v8.0.0.5(64)。
  • 引用以下組件:
  • 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,直到兩個版本都能正常工作。

回答

2

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

您可以查看使用重定向的替代方法,更新app.config文件以使用應用程序所需的正確版本的程序集。查看您的MQ安裝目錄,找到名爲NonPrimaryRedirect.config的文件。該文件包含應用程序查找特定版本的MQ/XMS .NET程序集所需的示例配置。將該文件的內容複製到應用程序的app.config文件中,然後嘗試。您必須確保所有href屬性指向正確的路徑。

+0

這是爲我做的。一旦我更新了app.config以添加'IBM.XMS.Client.Impl.dll'的文件引用,代碼就開始爲其他程序集拋出相同的錯誤。在我逐一添加它們之後,代碼開始拋出一個不同的錯誤,我沒有記下來。發佈我運行MQ文件夾中的'amqiRegisterdotNet.cmd'以將V8.0.0.5程序集註冊到GAC。之後,我收到另一個錯誤,我通過將程序集「amqmdnet.dll」添加到app.config中解決了這個問題,與我爲其他人一樣。問題解決了,我現在可以讀/寫消息到隊列中。 – Vishal