2

IIS ホスト WCF サービスへの非同期 WCF 呼び出しを行う軽量のクライアント アプリケーションがあります。次に、ホストされたサービスはクライアントとして機能し、別の外部サービスへの SOAP 呼び出しを行い、何らかの作業を行ってから結果をクライアントに返します。

クライアント >> WCF IIS サービス >> SOAP サービス

Client > WCF IIS Serviceがマルチスレッドで非同期であることを確認するのに多くの時間を費やしましたが、 WCF IIS Service >> SOAP Serviceから同期的にボトルネックになっていることがわかりました。

WCF IIS サービスへのクライアント非同期呼び出しを行い、次に SOAP サービスへの非同期呼び出しを行い、結果をクライアントに返す方法はありますか?

今はちょっと頭がおかしくなりそうです。助けていただければ幸いです。

4

2 に答える 2

0

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);
    }
}
于 2012-10-14T18:38:18.553 に答える
0

はい、あなたが正しく理解している場合は、WCF サーバーの OperationContract で AsyncPattern = true を設定するだけでよい場合があります。次に、BeginXXX および EndXXX メソッドを使用して各 WCF サーバー呼び出しを実装します。

現在、WCF サーバー呼び出しを同期的に実装している場合は、最初は同期メソッドで BeginInvoke を使用できるはずですが、明らかに完全に非同期にする方がよいでしょう。

于 2012-10-13T03:29:27.450 に答える