【发布时间】: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