【问题标题】:WCF Service - Asynch Operation or Queued MessagingWCF 服务 - 队列消息的异步操作
【发布时间】:2011-03-03 03:01:08
【问题描述】:

我有一个 WCF 服务作为 Windows 服务托管,它的大多数方法当前定义为:

[OperationContract(IsOneWay = true)] 

但是,现在我需要将响应发送回调用这些服务方法的 Web 应用程序。

现在,因为服务方法有点重(仅供参考,它们是报告需要为记录数量进行邮件合并的方法),我正在考虑将它们排队或异步处理,所以基本上当请求是发送到服务它应该将请求保存到数据库/队列,将 Request-Id 返回给调用 Web 应用程序。

  • 同时,WCF 服务只能处理来自队列或数据库的未完成请求。
  • 然后调用 Web 应用程序可以 ping WCF 服务以获取请求状态,因为它具有 Request-Id 或
  • 当 Request-Id 对应的进程完成时,WCF 服务可以 ping 回调用应用程序。

为了实现上述目标,谁能指导我需要对我的 WCF 服务(目前具有单向操作)进行哪些更改?

另外,请指导我是否需要进行异步操作或消息队列?

谢谢!

【问题讨论】:

  • 我个人会坚持使用“ping 以获取状态更新”。否则,您的客户端会因为创建端点而变得更加臃肿,以便服务可以传回消息。

标签: wcf


【解决方案1】:

当然,异步很简单: 删除有问题的 OperationContract 上的 OneWay 并重新生成您的 Service WITH Async 方法。 Silverlight 强制您使用异步操作是有原因的。它们确实会迫使您重新考虑您的 UI。

【讨论】:

    猜你喜欢
    • 2019-11-04
    • 1970-01-01
    • 2016-02-06
    • 1970-01-01
    • 2015-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多