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