c# - Google api 请求异步方法静默失败,但同步方法在 asp.net 网络服务中工作
问题描述
每次我尝试使用其中一种异步方法来执行 google api 的请求时,它只会在 asp.net Web 服务中静默失败,它静默失败,没有例外,只有在 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
'sExecuteAsync
和Files.Get
'尝试过,DownloadAsync
结果相同,所以我想其他请求也会发生同样的情况。
关于为什么会发生这种情况的一些想法?
PS:我刚刚做了一个干净的 asp.net 项目。添加了服务帐户密钥,添加了重现它的最少代码,结果相同。我想我应该在 github 上打开一个关于这个的问题。
解决方案
推荐阅读
- c++ - 无符号长字符串以二进制形式附加 ascii 值。C++
- node.js - 使用 socket.io 响应 Native 一对一对话
- javascript - JSX 内部循环
- javascript - React:根据点击事件显示过滤后的数组项
- javascript - 如何通过 RESTful API 在 WordPress 中上传多张图片?
- javascript - 通过页脚wordpress中的jquery文件呈现阻塞
- windows - 当我使用 C++/CLI winforms 时,为什么#include Windows.h 会出现很多错误?
- javascript - 如何将字符串格式日期转换为日、日期、小时格式以与我的本地机器时间相同
- java - 定制状态机设计(棋盘)
- python - 如何在信号处理程序中使用更多参数?