如何使WCF RESTful服务工作异步?

我正在构建WCFrest服务,它是客户端。 我计划,客户端对服务知之甚少,只是正确的URL来调用方法和预期结果。

我的服务合同是:

[WebInvoke(Method="POST", UriTemplate="/tasks")] [OperationContract] void SubmitTask(Transaction task); [WebGet(UriTemplate = "/tasks/{taskId}")] [OperationContract] [XmlSerializerFormat] Transaction GetTask(string taskId); 

SubmitTask实现如下:

 SubmitTask(Transaction task) { DoSomethingWithTask(task); task.Status = "SomeStatus"; DoSomethingElseWithTaks(task); task.Status = "SomeOtherStatus"; } 

我对客户的期望:

 ButtonClick() { SubmitTask(task); while(true) { string status = Transaction GetTask(task.taskId).Status; Textbox.Text+= status; if(status==ok) break; Thread.Sleep(1000); } } 

问题是 – GetTask不在服务端执行,而所有SubmitTask操作都已完成,因此我只获得客户端的最后一个任务状态。 如何在这种情况下实现异步操作?

提前致谢!

你读过这篇有趣的小文章吗? 调整WCF以构建高度可伸缩的异步REST API以及以下非常好的文章,希望能够提供您希望的答案修复WCF以构建高度可伸缩的异步REST API