如何进行故障排除"值不能为空。参数名称:baseUri"

时间:2015-11-03 15:56:47

标签: google-app-engine google-drive-api google-cloud-platform google-api-dotnet-client

我需要帮助诊断此错误。其他人在各种平台(例如youtube)上获得它,但似乎没有解决大多数平台。对于那些报告成功的人来说,他们的解决方案对我无效。

我使用的是Google云端硬盘API,尝试上传到Google云端硬盘时收到此错误。

我的代码工作很长时间了;突然间,我收到了这个错误。经过研究,我确定我没有达到配额,并且启用了这些API:

  • Debuglet Controller API
  • Drive API
  • Google Cloud Dataflow API
  • Google Cloud Dataproc API
  • Google Cloud Deployment Manager API
  • Google Cloud Deployment Manager V2 API
  • Google云端存储
  • Google云端存储JSON API
  • Google Compute Engine Autoscaler API
  • Google Compute Engine实例组管理器API
  • Google Compute Engine实例组更新程序API
  • Google Compute Engine实例组API
  • Google容器引擎API
  • Google Machine Learning API

这是我的代码:

        string fileName = @"c:\temp\MyPicture.jpg";
        string fileTitle = @"TEST-DELETE-ME.jpg";
        string fileDescription = @"Test file name";
        string fileType = "image/jpeg";
        string parentId = "zmzmzmzmzmzmzmzmzmz";

        Google.Apis.Drive.v2.DriveService service = (Google.Apis.Drive.v2.DriveService)Service;

        Google.Apis.Drive.v2.Data.File body = new Google.Apis.Drive.v2.Data.File();
        body.Title = fileTitle;
        body.Description = fileDescription;
        body.MimeType = fileType;
        body.Parents = new List<ParentReference> { new ParentReference() { Id = parentId } };

        byte[] byteArray = System.IO.File.ReadAllBytes(fileName);

        System.IO.MemoryStream stream = new System.IO.MemoryStream(byteArray);

        Google.Apis.Drive.v2.FilesResource.InsertMediaUpload request = service.Files.Insert(body, stream, fileType);

        Google.Apis.Upload.IUploadProgress progress = request.Upload();

        Google.Apis.Drive.v2.Data.File file = request.ResponseBody;

        if (file == null)
        {
            //Here we are, and we shouldn't be!
            //progress.exception.message = 
            //
            //Value cannot be null.
            //Parameter name: baseUri
        }

当我查看Drive API设置时,这些是配置:

  • 没有图标(有框设置256x265,128x128,64x64,32x32和16x16都是空白的)

  • 应用程序名称以及简短描述和长描述均为空白且可选。

  • 对于云端硬盘集成,所有框和复选框均为空白或未选中。具体来说:

  • &#34;自动显示OAuth 2.0同意...&#34;未经检查。

  • &#34;打开网址&#34;是空白的。

  • 默认和辅助MIME类型和文件扩展名为空

  • &#34;允许用户创建新文档......&#34;未经检查

  • &#34;允许用户打开多个文件...&#34;未经检查

  • &#34;允许用户打开可以转换的文件......&#34;未经检查

  • &#34;此应用程序可以在移动浏览器中启动并正常运行&#34;未经检查。

用户不要使用Google Drive UI通过我的应用程序创建文档,也不应在移动浏览器上使用。我的应用程序只将PDF文件上传给用户&#39;帐户。

我的应用程序已经工作了几个月而没有任何问题,现在突然看到这个错误。

我尝试禁用所有API,然后重新启用它们。没有骰子。

我尝试过使用新的客户端ID和密码。没有骰子。

我尝试过使用新的Gmail地址并创建新的客户端ID和密码。没有骰子。

我不可能成为世界上唯一有这个问题的人。任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

潜在问题就像授权问题或请求的其他一些错误。但是,.NET客户端中存在一个掩盖错误的错误。

请参阅https://github.com/google/google-api-dotnet-client/issues/456