Ibm mq 未能初始化XMSFactoryFactory

Ibm mq 未能初始化XMSFactoryFactory,ibm-mq,Ibm Mq,我是IBM WebSphere MQ的新手。我正在尝试使用Dynamics CRM插件中的IBM.XMS dll连接到MQ,并发现以下错误 异常:致命错误。未能初始化XMSFactoryFactory 堆栈跟踪:位于IBM.XMS.XMSFactoryFactory.GetXmsFactory(Int32 connectionType) 位于IBM.XMS.XMSFactoryFactory.GetInstance(Int32 connectionType) 位于Mta.ACBPS.Mta.Cr

我是IBM WebSphere MQ的新手。我正在尝试使用Dynamics CRM插件中的IBM.XMS dll连接到MQ,并发现以下错误

异常:致命错误。未能初始化XMSFactoryFactory 堆栈跟踪:位于IBM.XMS.XMSFactoryFactory.GetXmsFactory(Int32 connectionType) 位于IBM.XMS.XMSFactoryFactory.GetInstance(Int32 connectionType) 位于Mta.ACBPS.Mta.Crm.Plugins.posttamessagecreate.GetConnection(IOOrganizationService服务、Mta_mqconnection mqConnectionRecord、ITracingService跟踪器) 内部异常:System.InvalidCastException:无法将类型为“IBM.XMS.Client.Impl.XmsFactoryFactoryImpl”的对象强制转换为类型为“IBM.XMS.XMSFactoryFactory”。

源代码是

var connectionfactory = (IConnectionFactory)null;
try
{
var factoryfactory = XMSFactoryFactory.GetInstance(XMSC.CT_WMQ);
connectionfactory = factoryfactory.CreateConnectionFactory();
connectionfactory.SetStringProperty(XMSC.WMQ_QUEUE_MANAGER, mqConnectionRecord.mta_name);
connectionfactory.SetStringProperty(XMSC.WMQ_HOST_NAME, mqConnectionRecord.mta_HostIP);
connectionfactory.SetIntProperty(XMSC.WMQ_PORT, int.Parse(mqConnectionRecord.mta_Port));
connectionfactory.SetStringProperty(XMSC.WMQ_CHANNEL, mqConnectionRecord.mta_Channel);
connectionfactory.SetIntProperty(XMSC.WMQ_BROKER_VERSION, XMSC.WMQ_BROKER_V2);
connectionfactory.SetIntProperty(XMSC.WMQ_CONNECTION_MODE, XMSC.WMQ_CM_CLIENT_UNMANAGED);

}

显而易见的问题是:您是否安装了MQ客户端,或者只是从某个地方复制了IBM.XMS.DLL程序集并使用它?IBM.XMS依赖于许多其他程序集。仅仅拥有IBM.XMS程序集是没有帮助的

IBMXMS.NET客户端与MQ客户端捆绑在一起。所以您必须安装MQ客户机。您可以从下载最新的MQ客户端

安装MQ客户端后,请参阅\Tools\dotnet\samples\cs\xms目录中的示例

根据评论进行更新
我想知道您是否需要引用插件中的其他XMS程序集,以便CRM找到这些依赖程序集。作为起点,您可以参考
IBM.XMS.Client.Impl
IBM.XMS.Impl
,看看它是否有帮助。

这是固定的。我引用IBM.XMS并使用ILMerge将程序集与插件代码dll合并。我删除了IMLerge,现在插件正在使用安装在GAC for IBM.XMS中的程序集。

我删除了“dynamics crm”标记,因为这显然不相关(可能是标记时的输入错误?),我已经安装了MQ客户端。我在C#的控制台应用程序中引用了IBM.XMS dll,代码运行良好。当我在dynamics CRM插件中使用相同的方法时,它会显示此错误。是否可以在不安装客户端的情况下执行侦听方法?