我正在使用谷歌的BigQuery API与服务帐户授权在C#控制台应用程序。
当我试图加载CSV作业时,它会引发“值不能为空。参数名: 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();
谢谢。
发布于 2015-06-19 07:00:45
我设法找到了解决问题的根本原因和解决办法。
实际错误:表架构不匹配。
原因:大查询表字段模式下的是必需的。我从这个查询“选择*来自表名限制1”的响应中获得表模式,因为无法构建新模式。当我从查询响应中获得表模式时,字段模式变为NULLABLE。这就是为什么我得到了模式错配。
谷歌开发者的问题:
开发人员建议:
使用Fiddler工具获得实际错误。在我的例子中,我从Textview获得了检查器 Tab下的实际错误。希望这篇文章也能有所帮助。
谢谢。
https://stackoverflow.com/questions/30909308
复制相似问题