簡體   English   中英

值不能為空。 參數名稱:baseUri

[英]Value cannot be null. Parameter name: baseUri

我在C#控制台應用程序中使用帶有服務帳戶授權的Google BigQuery API。

當我嘗試加載CSV作業時,它拋出“ 值不能為null。參數名稱:baseUri ”異常。 它僅在單個表上特定,當我更改表名時,所有這些都可以使用。

這是堆棧跟蹤:

at Microsoft.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at Microsoft.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
   at Microsoft.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   at Microsoft.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
   at Google.Apis.Upload.ResumableUpload`1.<UploadCoreAsync>d__e.MoveNext() in c:\code\google.com\google-api-dotnet-client\default\Tools\Google.Apis.Release\bin\Debug\test\default\Src\GoogleApis\Apis\[Media]\Upload\ResumableUpload.cs:line 459

作業上傳代碼:

JobsResource.InsertMediaUpload InsertMediaUpload = new obsResource.InsertMediaUpload(BigQueryService, Job, Job.JobReference.ProjectId, fileStream, "application/octet-stream"); 
var JobInfo = InsertMediaUpload.UploadAsync();

Fiddler的HTTP請求和響應

謝謝。

我設法找到問題的根本原因和解決方案。

實際錯誤:表架構不匹配。

原因:在大查詢表中,需要字段模式。 我從該查詢的響應“ Select * From Table-name Limit 1 ”中獲取表架構,因為無法構建新架構。 當我從查詢響應中獲取表架構時,字段模式更改為NULLABLE。 這就是為什么我遇到架構不匹配的原因。

給Google開發人員的問題:

  1. 當我們從Response中獲得模式時,為什么所有字段模式都為NULLABLE?
  2. 為什么Google API不返回實際錯誤,它只拋出一條常見的錯誤語句,煩人的需要提琴手才能獲取實際錯誤,然后我們將如何解決生產問題。 在生產環境中也需要提琴手嗎? 它沒有任何意義。

開發者建議:

使用Fiddler工具獲取實際錯誤。 就我而言,我從“ 檢查員”選項卡下的Textview中獲取實際錯誤。 希望這篇文章也會有所幫助。

謝謝。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM