Запуск асинхронных задач на веб-формах asp.net - PullRequest
0 голосов
/ 28 июня 2019

Я подключаюсь к API и использую библиотеку Async (Koenzomers), когда запускаю это из консольного приложения, оно работает абсолютно нормально, когда я запускаю его со страницы веб-формы asp.net, я не могу заставить ее работать.

Код У меня есть

, если я пытаюсь запустить задачу при запуске из консольного приложения

                    Task TestAuth = TestOtherLibrary();
                    TestAuth.Wait();

Я получаю тот же результат.

protected void Page_Load(object sender, EventArgs e)
{
    Response.Write("Authenticating");
    RegisterAsyncTask(new PageAsyncTask(Auth));
}

public async Task Auth()
{
    using (KoenZomers.UniFi.Api.Api UnifiApp = new KoenZomers.UniFi.Api.Api(new System.Uri("https://myserverurl"), "unifisiteid"))
    {
    await UnifiApp.Authenticate("admin", "mysecurepassword");

    }
}

Идея состоит в том, чтобы подключиться к контроллеру unifi и авторизовать пользователя на основе mac-адреса.

В настоящее время загрузка страницы происходит в тупике, я не уверен, что пользовательский интерфейс ожидает завершения задачи,и это никогда не заканчивается.

1 Ответ

0 голосов
/ 30 июня 2019

Вместо использования PageAsyncTask, используйте приведенный ниже,

var localVariable = Task.Run(async () => await Auth())?.Result;

...