Google api запрашивает асинхронные методы молча, но методы синхронизации работают в веб-сервисе asp.net - PullRequest
0 голосов
/ 13 апреля 2019

Каждый раз, когда я пытаюсь использовать один из асинхронных методов для выполнения запроса Google API, он завершается сбоем только в веб-сервисе asp.net, происходит сбой без вывода сообщений, без исключений, только при тестировании в localhost:

This XML file does not appear to have any style information associated with it. 
The document tree is shown below.

<TaskOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/"/>

Если я переключаю метод на версию синхронизации, все работает без проблем.

Например, смотрите мои комментарии здесь:

    private async Task<XmlDocument> GetListAsync()
    {
        LogInfo("Descargando lista de juntas");

        try
        {
            if (_DriveService == null)
                throw new ArgumentNtullException("service");
            LogInfo("DriveService no es null");

            var request = _DriveService.Files.List();
            request.Q = $"name = '{_ListName}' and trashed = false";
            request.Fields = "files(id,parents)";
            LogInfo("Preparado request para descargar lista de juntas: {0}", request.Q);

            var result = request.Execute();//<-- this works 
            //var result = await request.ExecuteAsync(); <-- this fails silently
            LogInfo("Request para lista juntas terminado con número de resultados: {0}", result.Files.Count);

Вы можете увидеть, что после строк request.Execute есть журнал. Если я использовал асинхронную версию, что журнал никогда не записывается, также строка никогда не будет достигнута, если я поставлю точку останова. Если я использую версию синхронизации, все будет работать как надо.

Я пробовал это с Files.List ExecuteAsync и Files.Get DownloadAsync с тем же результатом, поэтому я полагаю, что это произойдет так же и с другими запросами.

Некоторые идеи о том, почему это происходит?

PS: Я только что сделал чистый проект asp.net. Добавлен сервисный ключ учетной записи, добавлен минимальный код для его воспроизведения и те же результаты. Я думаю, что я должен открыть вопрос на github по этому поводу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...