繁体   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