.Net:无法从程序集“ IBM.XMS.Client.WMQ,版本= 8.0.0.7”加载类型“ IBM.WMQ.ManagedCommonServices”

时间:2018-12-05 12:05:23

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

使用.net框架Web API项目,我们要为MQ队列创建一个侦听器(消费者)。我们正在使用XMS.Net,因为我们对接收消息的异步样式感兴趣。但是,在创建连接时,我们遇到错误-无法从程序集“ IBM.XMS.Client.WMQ,版本= 8.0.0.7,文化=中性,PublicKeyToken = d2666ab12fca862b”中加载类型“ IBM.WMQ.ManagedCommonServices”

enter image description here

根据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引用到了项目中。

任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:2)

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

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

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

注意:您必须将app.config文件中的“ newVersion”属性值修改为您要针对其运行的版本,即9.1.0.0,然后修改“ href ”到可重新分发的程序包路径。

3)将以下标记添加到app.config文件

var price = ele.options[ele.selectedIndex].dataset.price