[英]WCF Async Client calling WCF Async Service
我有一個簡單的Client應用程序,該應用程序對IIS主機WCF服務進行異步WCF調用。 然后,托管服務充當客戶端,以對另一個外部服務進行SOAP調用,進行一些工作,然后將結果返回給客戶端。
客戶端>> WCF IIS服務>> SOAP服務
我花了很多時間,確保Client> WCF IIS Service是多線程且異步的,才發現它從WCF IIS Service >> SOAP Service同步地成為瓶頸。
有沒有一種方法可以對WCF IIS服務進行客戶端異步調用,從而又使對SOAP服務的異步訪問,然后將結果返回給CLient?
現在,我有點困惑,不勝感激。
是的,如果我對您的理解正確,則可能只需要在WCF服務器OperationContract中設置AsyncPattern = true,則可以使用BeginXXX和EndXXX方法實現每個WCF服務器調用。
如果您當前有WCF服務器調用是同步實現的,則首先應該可以在同步方法上使用BeginInvoke,盡管顯然可以使它們完全異步。
我無法控制SOAP Java服務,我可以將服務引用上的配置設置為異步運行。 如果我要使用BeginXXX和EndXXX方法,我將如何在WCF方法調用中運行結果?
public class AddService : IAddService
{
// SOAP Java service reference
ResultServiceClient proxy = new ResultServiceClient();
public int AddNumbers(int x, int y)
{
proxy.BeginGetResult(x, y, new AsyncCallback(OnEndAdd), null);
/// how to return a result here.??????
return result;
}
void OnEndAdd(IAsyncResult result)
{
int result = proxy.EndGetResult(result);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.