我有一个带有公共REST和SOAP endpoints 的WCF服务,它有一个post方法 . 目前应用程序处理如下

  • 对象已发布到服务方法

  • 服务方法将数据传递到存储队列,然后发送XML响应 .

  • 第二个辅助角色检查队列,执行一些处理并根据处理,将记录添加到DB或拒绝它 .

我目前的问题是WCF方法在决定接受或拒绝该消息之前做出响应 . 有很多处理,并且在收到WCF消息后根据客户设置使用各种工作者角色 . 我希望能够做出接受/拒绝决定,然后回复相关数据 . 我想知道如何做到这一点 .

我可以做一个异步的Service方法,但是所有的代码都需要进入WCF角色或可调用的库,这是不理想的 . 在有来自另一个工作者角色的响应(消息在队列中)之前,有没有办法不使用异步End方法?我意识到我可以只做一个thread.sleep并定期检查队列,但后来我必须将原始请求数据添加到队列中,我真的不认为这是正确的做事方式 . 我用Google搜索,找不到具体的,非hackish方法 .

如果代码示例有帮助,请告诉我,但(我认为)它非常简单 .