Вызов веб-службы asmx из службы WCF - PullRequest
2 голосов
/ 07 марта 2011

У меня есть интересная проблема с приложением (silverlight), которому необходимо получить некоторые данные из службы wcf.Нет ничего сложного в том, что это просто и легко.

Службе wcf необходимо вызвать другой веб-сервис asmx, чтобы получить больше битовых данных для завершения поиска.Очевидно, что это вызывает проблемы в обычном асинхронном событии, так как после запуска метода wcf необходимо создать еще один асинхронный вызов службы asmx для извлечения данных.

Если это возможно, кто-то может указать мне правильное направлениео том, как справиться с этим, пожалуйста.

Спасибо за ваше время

1 Ответ

2 голосов
/ 07 марта 2011

В случае, если вы по какой-то надуманной причине не можете вызвать службу 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, если вам не нужно делать другие вещи во время вызова.

...