WCF服务 - 异步操作或排队消息

时间:2011-03-02 16:46:44

标签: wcf

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

[OperationContract(IsOneWay = true)] 

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

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

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

要实现上述目标,任何人都可以指导我需要对我的WCF服务进行哪些更改(目前有单向操作)?

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

谢谢!

1 个答案:

答案 0 :(得分:0)

当然,去Async很简单: 删除有问题的OperationContract上的OneWay并使用Async方法重新生成Service。 Silverlight迫使您使用异步操作的原因。他们会强迫您重新考虑您的用户界面。