相关疑难解决方法(0)

有没有办法检查MSMQ队列中有多少消息?

我想知道是否有办法以编程方式检查使用C#在私有或公共MSMQ中有多少消息?我有代码,使用try/catch中包含的peek方法检查队列是否为空,但我从未见过有关显示队列中消息数的任何信息.这对于监视是否正在备份队列非常有用.

c# msmq

39
推荐指数
3
解决办法
3万
查看次数

使用 .net“打开”MSMQ

我有一个调用来获取失败的 MSMQ 的计数。

经过一番研究,我发现了这个问题:Reading MSMQ message count with ruby

那里的答案表明,如果队列为空且已关闭,则您无法获得“性能指标”(包括消息计数)。

所以我现在的问题是,如何使用 .NET 和 C# 以编程方式“打开”(即“取消关闭”)MSMQ?


更新:如果相关,这是我获取消息计数的代码:

private static int GetMessageCount(string queueName, string machine)
{
    MSMQManagement queue = new MSMQManagement();

    string formatName = @"DIRECT=OS:" + machine + @"\PRIVATE$\" + queueName;
    queue.Init(machine, null, formatName);
    return queue.MessageCount;
}
Run Code Online (Sandbox Code Playgroud)

错误发生在queue.Init。错误消息是:“队列未打开或可能不存在。”

此代码在设置相同(但不为空)的另一个队列上运行良好。

.net c# msmq

4
推荐指数
1
解决办法
819
查看次数

标签 统计

c# ×2

msmq ×2

.net ×1