与远程队列连接时 MQ 错误 2085

MQ error 2085 while connecting with remote queue

我的 .NET 代码可以成功连接并将消息放入远程队列。但是,相同的代码不适用于本地队列。它抛出 2085 错误。应该在代码中设置什么不同的设置才能使其与本地队列一起使用?

这是我的代码:

Hashtable queueProperties = new Hashtable();
queueProperties[MQC.HOST_NAME_PROPERTY] = "10.x.x.x";
queueProperties[MQC.PORT_PROPERTY] = 1451;
queueProperties[MQC.CHANNEL_PROPERTY] = "TST1.TRADE.CHANNEL";

try
{
    // Attempt the connection
    queueManager = new MQQueueManager("MYQUEUEMANAGER", queueProperties);
    strReturn = "Connected Successfully";
}
catch (MQException mexc)
{
    // TODO: Setup other exception handling
    throw new Exception(mexc.Message
               + " ReasonCode: " + mexc.ReasonCode
               + "\n" + GetReason(mexc.ReasonCode), mexc);
}

此处,代码在内部使用 IIS 用户 ID(应用程序池用户)连接 MQ,因为此代码 运行 作为 WCF 服务的一部分。

如果您 运行 使用 mqrc 实用程序,您可以找出错误代码的含义:

$mqrc 2085

      2085  0x00000825  MQRC_UNKNOWN_OBJECT_NAME

这意味着您尝试打开的队列名称在您连接的队列管理器上不存在。

我注意到您发布的源代码不包含任何与打开队列相关的代码。您应该检查您尝试打开的队列名称是否确实存在于您正在连接的队列管理器上。