【问题标题】:Is it possible to capture MSMQ messages from a private queue or add a second destination?是否可以从专用队列捕获 MSMQ 消息或添加第二个目标?
【发布时间】:2010-11-11 07:25:28
【问题描述】:

我正在进行的项目使用市售包将音频路由到各个目的地。这个包是一个单独的应用程序,可用于将音频路由软件生成的事件记录到数据库,例如将设备 1 连接到设备 3。

我的任务是编写一个对音频路由软件生成的特定事件作出反应的应用程序,例如对与设备 3 的任何连接作出反应。

我注意到音频路由软件使用 MSMQ 将事件信息发布到事件记录器。这意味着如果记录器软件有一段时间没有运行,事件数据可能会累积。

我已找到队列 - “.\private$\AudioLog”,并希望执行以下操作:

  1. 检测和处理新消息 他们进入队列。

  2. 允许录制当前事件 软件继续 像以前一样工作 - 因此消息 不能被我删除 申请。

  3. 确保我总能看到 消息。

现在我注意到,我可以使用 MessageQueue 来查看队列以便在不删除的情况下读取消息,还可以使用 GetAllMessages() 来查看事件记录器未删除的所有消息。

如果没有连接录音软件,那么我可以看到我可以很容易地收集消息数据,但我看不出如何确保在录音机删除消息之前看到消息已连接。

理想情况下,我想将我的应用程序添加为消息队列的第二个目的地。这可能以编程方式吗?

如果我没有管理员权限,访问具有队列的机器是否可以手动配置队列以分支队列的第二个副本,以便我可以连接我的软件?

【问题讨论】:

    标签: c# windows-server-2008 msmq


    【解决方案1】:

    Msmq 有一个日志功能。您可以将队列配置为具有日志。然后,从队列中删除的每条消息(通过读取操作)都将移动到日志队列而不是删除。然后,您可以从日记中阅读(或窥视)。如果您使用 peek 操作,请确保您有不时删除日志的作业。

    【讨论】:

    • 谢谢你,我会试一试并回复你。
    • 是的,看起来好像就是这样。
    猜你喜欢
    • 2017-06-29
    • 2011-09-09
    • 2011-08-18
    • 2012-04-29
    • 1970-01-01
    • 2011-07-30
    • 2010-09-11
    • 2012-07-11
    • 1970-01-01
    相关资源
    最近更新 更多