【问题标题】:Asynchronous communication with WCF与 WCF 的异步通信
【发布时间】:2011-03-24 00:40:49
【问题描述】:

我正在开发一个通用的日志记录对象,它将在我们未来的所有应用程序中使用。它将向 MSMQ 提交日志,然后将其异步发送到我们的服务器,该服务器将该消息记录到数据库中。

目前我正在尝试了解其工作原理的架构。在客户端,一旦将日志提交到 MSMQ,MSMQ 是否会将日志提交到 WCF 以发送到服务器(我假设会有另一个 WCF 端点接收消息)?基本上,我在问日志将通过的服务顺序是什么?我已经阅读了有关 WCF 的 netMsmqBinding 的信息,这是我将日志从 MSMQ 发送到 WCF 所需要的,然后我可以使用 basicHttpBinding 将其从 WCF 发送到服务器端的 WCF?

类似:

[客户端应用程序] -> 记录器 -> MSMQ -> WCF ----------> [服务器] WCF -> DB

【问题讨论】:

    标签: wcf msmq


    【解决方案1】:

    WCF 有netMsmqBinding 可以处理客户端和服务器消息。如果您使用它,MSMQ 对您几乎是不可见的。您将向 WCF 服务发送消息,它将被放入 MSMQ,服务器端 WCF 将选择它并像任何其他绑定一样调用方法。

    如果您有任何创建 WCF 服务的经验,您也应该这样做,但也要创建 MSMQ 队列。

    这里是有用的链接:http://sukasom.wordpress.com/2008/08/18/wcf-and-msmq-part-1/http://msdn.microsoft.com/en-us/library/ms752217.aspx

    【讨论】:

    • 我是在客户端还是服务器端设置 netMsmqBinding 端点?我现在看到的方式是我在服务器端根本不需要 MSMQ。还是我走远了?客户端如何知道服务器收到了消息,从而可以从客户端的 MSMQ 中删除消息?
    • @jonathan MSMQ 服务是独立服务。从物理上讲,它可以在任何地方运行,在与服务器、客户端相同的 PC 上或在单独的 PC 上运行。它必须有持久的地址或主机名,就是这样。 MSMQ 是单向通信,您无法检查消息是否从客户端传递。实际上,MSMQ 是安全的消息传递,基础设施控制传递。
    • 得到它的工作,感谢链接(尤其是第一个)。 netMsmqBinding 确实包罗万象,甚至不需要在代码中触及 MSMQ。
    • 我的问题是这是如何工作的?我正在测试的客户端计算机甚至没有安装 MSMQ,但我能够在服务器未运行时对消息进行排队,然后在我启动服务时收到消息。
    猜你喜欢
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-11
    • 2017-05-21
    • 1970-01-01
    相关资源
    最近更新 更多