Я пытаюсь подключиться к очереди WebsphereMQ, используя .Net Core 2.2.Я действительно запутался в том, как это сделать.Я хотел бы получить некоторые пояснения, прежде чем показывать, что я пытаюсь (и терпит неудачу):
- Какую библиотеку я должен использовать и как ее получить?(NMS? AMQP? WebsphereClient?)
- Я видел несколько примеров, которые, по-видимому, используют некоторые библиотеки DLL, которые появляются при установке WebsphereMQ (???).Это верно?Нужно ли устанавливать WebsphereMQ?(сейчас он у меня на удаленном сервере, который я могу подключить к нужной мне очереди).
До сих пор я пытался установить WebSphereMQClient и пытается подключиться к очереди с помощью следующего кода:
public void StartListener()
{
try
{
var xff = XMSFactoryFactory.GetInstance(XMSC.CT_WMQ);
var cf = xff.CreateConnectionFactory();
cf.SetStringProperty(XMSC.WMQ_HOST_NAME, WebsphereMqHost);
cf.SetIntProperty(XMSC.WMQ_PORT, WebsphereMqPort);
cf.SetStringProperty(XMSC.WMQ_CHANNEL, WebsphereMqChannel);
cf.SetStringProperty(XMSC.WMQ_QUEUE_MANAGER, WebsphereMqQueueManager);
cf.SetIntProperty(XMSC.WMQ_CONNECTION_MODE, XMSC.WMQ_CM_CLIENT);
var conn = cf.CreateConnection();
var sess = conn.CreateSession(false, AcknowledgeMode.AutoAcknowledge);
var queue = sess.CreateQueue(QueueName);
var consumer = sess.CreateConsumer(queue);
consumer.MessageListener = OnWebsphereMsg;
conn.Start();
}
catch (Exception e)
{
_logger.LogError(e);
}
}
Но я получаю исключение в первой строке:
System.Exception: Fatal error. Failed to initialize XMSFactoryFactory ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.TypeInitializationException: The type initializer for 'IBM.XMS.Client.Impl.XmsFactoryFactoryImpl' threw an exception. ---> System.TypeInitializationException: The type initializer for 'IBM.XMS.Util.Tr' threw an exception. ---> System.TypeInitializationException: The type initializer for 'IBM.XMS.Util.ConfigMgr' threw an exception. ---> System.MissingMethodException: Method not found: 'System.AppDomainSetup System.AppDomain.get_SetupInformation()'.
at IBM.XMS.Util.ConfigMgr..cctor()
--- End of inner exception stack trace ---
at IBM.XMS.Util.Tr.ResolveTraceSpec()
at IBM.XMS.Util.Tr.LoadTraceConfig()
at IBM.XMS.Util.Tr..cctor()
--- End of inner exception stack trace ---
at IBM.XMS.Util.Tr.Register(Type aClass, String group, String resourceBundleName)
at IBM.XMS.Client.Impl.XmsFactoryFactoryImpl..cctor()
--- End of inner exception stack trace ---
at IBM.XMS.Client.Impl.XmsFactoryFactoryImpl.GetClientFactory(Int32 connectionType)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at IBM.XMS.XMSFactoryFactory.GetXmsFactory(Int32 connectionType)
--- End of inner exception stack trace ---
at IBM.XMS.XMSFactoryFactory.GetXmsFactory(Int32 connectionType)
at IBM.XMS.XMSFactoryFactory.GetInstance(Int32 connectionType)
at MyApp.Integrations.Configurations.WebsphereMqIntegrationsManager.StartListener(ListenersEnum listener, Dictionary`2 parameters).
Я заметил, что WebsphereMqClient несоответствует стандарту .NET.Это ошибка вызвана из-за этого?Как я могу подключиться к Websphere с помощью моего приложения .NET Core?
Спасибо,