我需要从wcf服务获取一些数据的应用程序(silverlight)有一个有趣的问题。在这方面没有任何意义,容易做到。从WCF服务调用asmx Web服务
wcf服务需要调用另一个asmx Web服务来获取更多位数据来完成检索。很明显,这会导致正常异步事件中的问题,因为一旦运行wcf方法,就需要对asmx服务创建另一个异步调用来检索数据。
如果这是可能的,有人可以指示我如何处理这个问题的正确方向。
感谢您的时间
我需要从wcf服务获取一些数据的应用程序(silverlight)有一个有趣的问题。在这方面没有任何意义,容易做到。从WCF服务调用asmx Web服务
wcf服务需要调用另一个asmx Web服务来获取更多位数据来完成检索。很明显,这会导致正常异步事件中的问题,因为一旦运行wcf方法,就需要对asmx服务创建另一个异步调用来检索数据。
如果这是可能的,有人可以指示我如何处理这个问题的正确方向。
感谢您的时间
在你,对于一些牵强的理由,不能同步调用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循环。
谢谢文森特,我刚刚在最后同步调用它。 – Mark 2011-03-09 07:10:42
请问为什么在初始的WCF调用中没有提供这个功能(需要进一步查询的细节)? – 2011-03-07 05:54:37
你不能同步调用asmx服务吗? – 2011-03-07 07:28:31
我不明白你究竟想要做什么?问题需要时间?如果问题超时?增加绑定超时属性的时间。如果问题是时间?去vc 74评论 – BreakHead 2011-03-07 07:37:22