我的.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用户标识(应用程序池用户)与MQ连接,因为此代码作为WCF服务的一部分运行。
答案 0 :(得分:4)
如果您运行mqsc
实用程序,则可以找出错误代码转换为的内容:
$mqrc 2085
2085 0x00000825 MQRC_UNKNOWN_OBJECT_NAME
这意味着您尝试打开的队列名称在您连接的队列管理器上不存在。
我注意到您发布的来源不包含与打开队列相关的任何代码。您应该检查您尝试打开的队列名称确实存在于您要连接的队列管理器上。