我正在尝试运行 sample视觉 API 项目。我基本上是将代码 Program.cs
复制并粘贴到我的应用程序中并执行它。
这一行(即第 36-#37 行 in Program.cs
)
GoogleCredential credential = GoogleCredential.GetApplicationDefaultAsync().Result;
在 mscorlib.dll
中抛出一个 System.AggregateException
以及 附加信息:发生一个或多个错误。
。
通过检查 InnerException
,我发现实际抛出的异常是 InvalidOperationException
和 Error deserializing JSON credential data.
。
尽管如此,我的云项目是一个基本项目,有一个服务帐户,启用了 Cloud Vision API,没有别的。我通过以下方式检查我的环境变量是否设置为 JSON 文件:
Console.WriteLine(Environment.GetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS"));
在上一行之前。那个(就在崩溃之前)的输出是(类似于):
C:\Users\me\Documents\Projects\MyProject\MyProject-ba31aae6efa1.json
我检查了文件,这是我启用服务帐户时得到的文件。其中的每个属性看起来都很好(即项目名称正确,路径正确,...)。
我安装了 Google Cloud SDK 并执行了 gcloud beta auth application-default login
并授权访问我的云帐户。
关于可能导致此问题的任何想法?
最佳答案
通过检查详细的构建日志,我发现 Google API 的包依赖于 Newtonsoft.Json
版本 9.0.1
(最新版本撰写本文时)。
无论出于何种原因,Google API 包 都依赖于 Newtonsoft.Json
版本 7.0.0
。
软件包附带错误的版本!
安装最新版本(在本例中为 9.0.1
)可解决此问题。
关于c# - 调用 GetApplicationDefaultAsync() 时发生 AggregateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38734199/