【问题标题】:.Net : Could not load type 'IBM.WMQ.ManagedCommonServices' from assembly 'IBM.XMS.Client.WMQ, Version=8.0.0.7.Net:无法从程序集“IBM.XMS.Client.WMQ,版本=8.0.0.7”加载类型“IBM.WMQ.ManagedCommonServices”
【发布时间】:2019-05-07 00:00:36
【问题描述】:

使用 .net 框架 Web API 项目,我们想为我们的 MQ 队列创建一个侦听器(消费者)。我们正在使用 XMS.Net,因为我们对接收消息的异步方式感兴趣。但是,在创建连接时,我们遇到了错误:

无法从程序集“IBM.XMS.Client.WMQ, Version=8.0.0.7, Culture=neutral, PublicKeyToken=d2666ab12fca862b”加载类型“IBM.WMQ.ManagedCommonServices”。

根据http://www-01.ibm.com/support/docview.wss?uid=swg1IC89514,此问题已修复,但我们仍使用 8.0.0.7 版本来解决此问题。

这对于 .Net 框架控制台应用程序运行良好,但对于 Web API 项目它失败了。

作为解决方法,我们还尝试在 app.config 中为 Web API 添加以下内容,但没有成功 -

<appSettings> <add key="MQCSCLASS" value="amqmdnet(IBM.WMQ.ManagedCommonServices)"/> </appSettings>

注意:我的机器上没有安装 MQ 客户端。我们已将 amqmdmsg、amqmdnet、amqmdnm、amqmdnsp、amqmdxcs dll 引用到项目中。

【问题讨论】:

  • 该版本不支持。
  • 建议您使用 MQ9.1 Redistributable Client。见这里:ibm.com/support/knowledgecenter/en/SSFKSJ_9.1.0/…
  • @Shashi 同意,之前没有太多时间,我认为它是在 9.0.5(最后一个 9.0 CDS 版本)中添加的,并且包含在 9.1 LTS 和 CDS 中。请注意,9.1.1 CDS 现在还为 MQ.NET 和 XMS.NET API 添加了对 .NET Standard (Core) 的支持。
  • @JoshMc - 是的,你是对的。它是在 9.0.5 中添加的,现在已纳入 9.1 LTS。
  • @JoshMc 我在 9.1 中仍然遇到同样的错误。如果可能的话,您能否分享一个包含所有适当 dll 的工作示例?它真的可以帮助我解决问题。

标签: c# .net asp.net-web-api ibm-mq xms


【解决方案1】:

如果您使用的是 MQ v9.1,可以尝试以下步骤

1) 在环境中设置以下变量 DEVPATH=&RedistributablePackagePath&\bin

2) 将绑定重定向标签添加到应用程序的 App.config 文件中,因为应用程序是使用较低 MQ 版本编译的,并且必须针对较高版本运行。为此,您可以复制位于“&MQInstallPath&\Tools\dotnet\samples\cs\base”的 NonPrimaryRedirect.config 文件的内容

注意:您必须将 app.config 文件中的“newVersion”属性值修改为您想要运行的版本,在您的情况下它应该是 9.1.0.0 并修改“href " 到可再发行包路径。

3) 在app.config文件中添加如下标签

<runtime>
<developmentMode developerInstallation="true" />
</runtime>
<appSettings>
   <add key="MQCSCLASS"
value="amqmdnet(IBM.WMQ.ManagedCommonServices)"/>
 </appSettings>

【讨论】:

  • 我的机器上没有本地安装客户端。以上方法还能用吗?
  • 在设置 env 变量时,我得到“无法识别 RedistributablePackagePath”。任何想法?或者我做错了什么。
  • 如果可以的话,你可以在我可以看看的地方分享样本吗?
  • 当我说可再发行包时,我的意思是所有 MQ 和 XMS .NET dll 所在的路径。如果 MQ dll 位于 C:\9.1.0.1-IBM-MQC-Redist- Win64\bin,DEVPATH 应该设置为 C:\9.1.0.1-IBM-MQC-Redist-Win64\bin。如果您从命令提示符执行应用程序,则应在命令提示符设置环境变量 set DEVPATH=C:\9.1.0.1-IBM-MQC-Redist-Win64\bin 然后执行应用程序
  • 在绑定重定向标签中我需要添加哪个dll相关的绑定?
猜你喜欢
  • 1970-01-01
  • 2018-01-14
  • 2020-02-10
  • 1970-01-01
  • 2020-04-15
  • 2013-05-02
  • 2019-12-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多