Dll 从.net core接收消息并将其发送到mqseries服务器

Dll 从.net core接收消息并将其发送到mqseries服务器,dll,.net-core,ibm-mq,Dll,.net Core,Ibm Mq,我想连接到具有此信息的mqseries服务器 队列的名称:“myqueue” 连接名称:“myconnectionName” 客户端频道:“mychannel” 服务器名称:“myServerName” 我还需要知道队列管理器吗?或者我可以使用“default”并且我也收到了这个错误消息 无法加载DLL“mqic32.DLL”或其依赖项之一: 找不到指定的模块。(HRESULT的例外情况: 0x8007007E)' MQ v9.1.1中添加了.NET核心支持。正如@JasonE所说,您只需要使用

我想连接到具有此信息的mqseries服务器

  • 队列的名称:“myqueue”
  • 连接名称:“myconnectionName”
  • 客户端频道:“mychannel”
  • 服务器名称:“myServerName”

    我还需要知道队列管理器吗?或者我可以使用“default”并且我也收到了这个错误消息

  • 无法加载DLL“mqic32.DLL”或其依赖项之一: 找不到指定的模块。(HRESULT的例外情况: 0x8007007E)'


    MQ v9.1.1中添加了.NET核心支持。正如@JasonE所说,您只需要使用MQ.NET管理模式

    示例代码:

    Hashtable properties;
    MQQueueManager queueManager = null;
    try {
        properties = new Hashtable();
        properties.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_MANAGED);
        properties.Add(MQC.HOST_NAME_PROPERTY, hostName);
        properties.Add(MQC.PORT_PROPERTY, port);
        properties.Add(MQC.CHANNEL_PROPERTY, channelName);
        properties.Add(MQC.USER_ID_PROPERTY, userName);
        properties.Add(MQC.PASSWORD_PROPERTY, pwd);
    
        MQQueueManager queueManager = new MQQueueManager(queueManagerName, properties);
    
    }catch(MQException mqex) {
     // Console out exception
    }
    

    如果您想留在.net中,则需要建立托管连接,否则它将尝试加载本机代码(C DLL)来建立连接。默认情况下,.net MQ代码将调用C层(MQIC*.dll)除非您要求它自己建立连接并保持在.net层内。是否有类似于.net for.net core的托管IBM WebSphere MQ Client的nuget,否则我在MQCW上遇到错误,您在应用程序中引用的程序集是什么?我有一个来自WebSphereMqClient(8.0.0.7)的using IBM.WMQ您的意思是,对于要使用的.NET核心应用程序amqmdnetstd.dll,我使用的是amqmnet.dll,而不是amqmdnetstd.dll。
    Hashtable properties;
    MQQueueManager queueManager = null;
    try {
        properties = new Hashtable();
        properties.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_MANAGED);
        properties.Add(MQC.HOST_NAME_PROPERTY, hostName);
        properties.Add(MQC.PORT_PROPERTY, port);
        properties.Add(MQC.CHANNEL_PROPERTY, channelName);
        properties.Add(MQC.USER_ID_PROPERTY, userName);
        properties.Add(MQC.PASSWORD_PROPERTY, pwd);
    
        MQQueueManager queueManager = new MQQueueManager(queueManagerName, properties);
    
    }catch(MQException mqex) {
     // Console out exception
    }