2016-08-03 38 views
8

我試圖運行sample Vision API項目。我基本上覆制並將代碼Program.cs粘貼到我的應用程序中並執行它。AggregateException當調用GetApplicationDefaultAsync()

此行(它是線#36-#37 in Program.cs

GoogleCredential credential = GoogleCredential.GetApplicationDefaultAsync().Result; 

拋出mscorlib.dllAdditional information: One or more errors occurred.一個System.AggregateException

通過檢查InnerException,我發現拋出的實際異常是InvalidOperationExceptionError 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並授權訪問我的雲帳戶。

關於可能導致此問題的任何想法?

+0

如果您需要更多信息,請評論。 – Rakete1111

+0

而不是猜測,展開'AggregateException'並看看[InnerExceptions](https://msdn.microsoft.com/en-us/library/system.aggregateexception.innerexceptions(v = vs.110).aspx)屬性。 –

+0

@IvanStoev謝謝,我不知道。 – Rakete1111

回答

5

通過檢查詳細的構建日誌,我發現Google API的包依賴於Newtonsoft.Json版本9.0.1(寫這篇文章時的最新版本)。

無論出於何種原因,谷歌的API 具有依賴(這是與他們一同安裝)上7.0.0Newtonsoft.Json版本。

軟件包附帶錯誤的版本!

安裝最新版本(在本例中爲9.0.1)解決了該問題。

+0

是的,就是這樣..非常感謝 – curiousBoy

+0

謝謝!這解決了我的問題。 –