Ошибка MoveNext при использовании асинхронных форм Xamarin - PullRequest
0 голосов
/ 26 октября 2018

У меня есть проект Xamarin для Android-форм, использующий серверную часть CodeIgniter с NuSoap.

В Visual Studio я создал базовый проект .NET для тестирования, добавил подключенный сервис к серверу. Создал асинхронную задачу для извлечения данных с сервера, все это работало правильно.

var client = new TbqService.ServicePortTypeClient();
var loginTask = Task.Run(() => client.logInAsync("user", "password"));
echoTask.Wait();
Console.WriteLine($"Login result {loginTask.Result}");

Затем я следовал той же последовательности для приложения форм Xamarin, но получаю следующую ошибку. Я видел комментарии о настройке SSL для TLS 1.2 и удалении папки bin / obj и перестройке. Ни то, ни другое не помогло.

{System.NullReferenceException: Object reference not set to an instance of an object.
 at MyThingApp.Models.DataConnect+<Login>d__13.MoveNext () [0x00023] in  
 D:\WebSites\TheMyThing_Projects\MyThingApp\MyThingApp\MyThingApp\Models\DataConnect.cs:31 }

Есть ли разница в том, как эти две работы работают, я должен обращаться с ними по-разному?

    public async Task<bool> Login(string email, string password)
    {
        try
        {
            var c = new TbqService.ServicePortTypeClient();
            var result = await c.logInAsync(email, password); // line 31 in error
            return result.Contains("true");
        }
        catch (Exception ex)
        {
            System.Diagnostics.Debug.WriteLine(ex);
        }

        return false;
    }
...