【发布时间】:2010-09-10 16:14:13
【问题描述】:
有没有办法检查公共 MSMQ 是否为空?对于私有 MSMQ,这很容易:
private bool IsQueueEmpty(string path)
{
bool isQueueEmpty = false;
var myQueue = new MessageQueue(path);
try
{
myQueue.Peek(new TimeSpan(0));
isQueueEmpty = false;
}
catch (MessageQueueException e)
{
if (e.MessageQueueErrorCode == MessageQueueErrorCode.IOTimeout)
{
isQueueEmpty = true;
}
}
return isQueueEmpty;
}
如何对公共 MSMQ 进行同样的检查?如果我尝试使用上面的代码检查公共 MSMQ,它会给我一个 Peak 错误:
System.ArgumentOutOfRangeException:长度不能小于零。
【问题讨论】:
-
我应该补充一下,公共 MSMQ 路径类似于 net.msmq://servername/mypublicqueue
标签: c# msmq netmsmqbinding