【问题标题】:Why do I need to use WCF to consume an MSMQ?为什么我需要使用 WCF 来使用 MSMQ?
【发布时间】:2014-12-09 13:14:30
【问题描述】:

我想通过 MSMQ 从我的 Web 应用程序与不同层上的端点进行通信。我找到了如何通过与 WCF 绑定来执行此操作的示例,但没有找到如何与 WebAPI 绑定的示例。

为什么我必须使用 WCF?

他们还有其他选择吗?

【问题讨论】:

  • 你没有。您在 System.Messaging 命名空间中使用 MSMQ 客户端库。为什么要使用 WebAPI 或 WCF?
  • @Amy WCF 允许围绕特定协议进行一定程度的封装,允许 OP 在不更改代码的情况下无缝切换到其他单向通信协议,例如IBM Websphere MQ(MQ 系列)。
  • 是什么让您认为您确实需要这样做?

标签: c# wcf asp.net-web-api msmq


【解决方案1】:

除了WCF's netmsmqBinding,您显然还可以使用更原生的System.Messaging.MessageQueue .Net 类直接从队列中读取和写入。但是,听起来您是在尝试从浏览器等客户端拉取消息?

虽然你可以send messages to MSMQ via Http,但你不能receive messages over Http directly

所以 TL;DR 我相信您需要编写自己的功能来通过 HTTP / REST 等接收消息,例如通过 WebApi 控制器操作,该操作仅读取一条消息并返回相同的消息。这样做可能会丢失队列消息之间的任何事务边界。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-18
    • 1970-01-01
    • 1970-01-01
    • 2015-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多