【问题标题】:Adding Message to MessageQueue programmatically以编程方式将消息添加到 MessageQueue
【发布时间】:2011-06-10 09:15:57
【问题描述】:

我有旧的“非事务”队列 (MessageQueue),其中可能包含消息。

现在以编程方式,我想: 1.从旧队列中获取消息---->完成 2. 创建新的“事务”队列 ---> 这也完成了 3. 将旧消息队列中的消息复制到新队列 -----> 怎么做? 4. 删除旧队列。 --- > 我可以通过调用 Close(),然后为旧队列调用 Dispose(),然后我可以使用 MessageQueue.Delete() 删除队列。 对吗?并且在删除队列之前是否需要调用 Close 和 Dispose?

请指导我处理粗体字的问题。

【问题讨论】:

    标签: c# msmq


    【解决方案1】:

    您必须从旧队列中读取消息的内容并将Send 作为新消息发送到新队列。没有复制方法。

    要删除队列,可以使用静态方法,因此关闭/处置不适用:

    System.Messaging.MessageQueue.Delete(@"myMachine\MyQueue");

    【讨论】:

    • 这正是我的问题。如何将消息(取自旧队列)发布到新创建的队列?
    • 这取决于您是否可以使用已用于发布到旧队列的原始结构。如果是这样,我只需用旧队列中的内容填充结构,然后使用MessageQueue.Send 将其发送到新队列。
    • 您的回复很有帮助。但是我对 MSMQ 还是很陌生。请您详细说明一下或给我方法的确切名称?
    • 如果不这样做,您可以尝试读取消息的二进制内容(BodyStream 属性),然后创建一个Message 对象,填充 BodyStream 并使用@987654326 发送@。但是,除了 Body 之外还有一些其他属性,所以如果要保留它们,则必须将它们都设置好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-20
    • 2014-07-20
    • 2012-05-09
    • 2011-03-14
    相关资源
    最近更新 更多