簡體   English   中英

如何使WCF RESTful服務異步工作?

[英]How to make WCF RESTful service work async?

我正在構建WCF休息服務,它是客戶端。 我計划,該客戶對服務知之甚少,只是正確的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); 
   }
}

問題是-在所有SubmitTask操作都已完成的同時,未在服務端執行GetTask,因此我僅在客戶端獲得最后一個任務狀態。 在這種情況下如何實現異步操作執行?

提前致謝!

您讀過這篇有趣的小文章嗎? 調整WCF以構建高度可擴展的異步REST API ,下面的文章非常好,有望為您提供所需的答案。 修復WCF以構建高度可擴展的異步REST API

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM