Веб-функции Azure, использующие службу SOAP: как сделать ошибку async/WinHttpHandler

Я пытаюсь использовать веб-службу мыла из проекта веб-функций Azure. У меня возникают трудности с кодированием вызова службы мыла. Я успешно добавил ссылку на веб-службу WCF. Файл reference.cs создан, а служба SOAP является асинхронной.

Код написан на C# DOT.NET core 2.0 и подключается к базе данных, размещенной в среде Azure.

Я считаю, что мне следует использовать многопоточность и вызывать асинхронную функцию. Когда я пытаюсь сослаться на код в отдельном файле класса, я получаю ошибки, связанные с использованием ключевого слова static.

public class ExpireData
{
    private readonly string _Endpoint;

    public ExpireData(IConfiguration config)
    {
        _Endpoint = config["ServiceURL"];
    }
    [FunctionName("ExpireData")]
    public void Run([TimerTrigger("0 * * * * *")]TimerInfo myTimer, ILogger log)
    {

        BasicHttpBinding binding = new BasicHttpBinding();
        EndpointAddress address = new EndpointAddress(_Endpoint);
        ServiceSoapClient client = new ServiceSoapClient(binding, address);

        var result = client.ExpireDataAsync();    
    }

Значение, сохраненное в результате: Id = 1018, Status = WaitingForActivation, Method = "{null}", Result = "{Еще не вычислено}"


person laney    schedule 28.06.2019    source источник
comment
Измените сигнатуру вашей функции на public async Task Run(..., затем измените последнюю строку вашего кода на var result = await client.ExpireDataAsync();.   -  person Thomas    schedule 29.06.2019
comment
Спасибо за ваш ответ, он правильный. Это то же самое, что и ответ ниже :)   -  person laney    schedule 02.07.2019


Ответы (1)


Как предложил Томас:

Измените сигнатуру вашей функции на общедоступную асинхронную задачу Run(...)

Затем измените последнюю строку вашего кода на var result = await client.ExpireDataAsync();

person DixitArora-MSFT    schedule 01.07.2019