簡體   English   中英

WCF異步客戶端調用WCF異步服務

[英]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.

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