从WCF服务调用asmx Web服务

时间:2011-03-07 05:51:39

标签: .net silverlight wcf asmx

我对应用程序(silverlight)有一个有趣的问题,需要从wcf服务获取一些数据。在这方面没有任何好处,也很容易做到。

wcf服务需要调用另一个asmx Web服务来获取更多位数据以完成检索。显然,这会导致正常的异步事件出现问题,因为一旦运行wcf方法,它就需要创建另一个asmx服务的异步调用来检索数据。

如果有可能,有人可以指出我正确的方向来处理这个问题。

感谢您的时间

1 个答案:

答案 0 :(得分:2)

如果您出于某种牵强的原因无法同步调用ASMX服务(这是目前为止更好的解决方案),您可以尝试这样的事情(尽管伪代码):

public MyResultClass GetStuff(ParamClass myParameter)
{
    var proxy = new ASMXProxy();
    proxy.Url = Settings.Default.ASMXUrl;
    var synchhandle = proxy.BeginGetStuff(myParamater);
    while(synchhandle.IsCompleted == false)
    {
        //Do stuff here
    }
    return proxy.EndGetStuff(synchhandle); //Code will block here until done
}

如果您在拨打电话时不需要做其他事情,可以省略while循环。