AddAsync(driveItem)不返回

问题描述 投票:0回答:1

以下代码中的.AddAsync(driveItem)永不返回。谁能对此有所启发?

IPublicClientApplication publicClientApplication = PublicClientApplicationBuilder
    .Create(App.ClientId)
    .Build();

DeviceCodeProvider authProvider = new DeviceCodeProvider(
    publicClientApplication,
    new string[] { "Files.ReadWrite.All" });

GraphServiceClient graphClient = new GraphServiceClient(authProvider);
DriveItem driveItem = new DriveItem
{
    Name = "Foo",
    Folder = new Folder { },
    AdditionalData = new Dictionary<string, object>()
    { { "@microsoft.graph.conflictBehavior", "fail" }
    }
};
await graphClient
    .Me
    .Drive
    .Root
    .Children
    .Request()
    .AddAsync(driveItem);

[编辑1]

我尝试使用“ Foo”以外的其他文件夹名称,尝试使用现有或不存在的文件夹的名称均无济于事。

我也尝试对“ @ microsoft.graph.conflictBehavior”使用“重命名”而不是“失败”。

我也尝试了没有AdditionalData的尝试。[编辑2]我决定等待该方法返回一段时间(超过10分钟),它最终引发了异常:

代码:generalException消息:发送请求时发生错误。

来源“ Microsoft.Graph.Core”

  at Microsoft.Graph.HttpProvider.<SendRequestAsync>d__19.MoveNext()
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Graph.HttpProvider.<SendAsync>d__18.MoveNext()
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Graph.BaseRequest.<SendRequestAsync>d__35.MoveNext()
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Graph.BaseRequest.<SendAsync>d__31`1.MoveNext()
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()

内部例外:

代码:generalException消息:发生了意外的异常验证请求。

   at Microsoft.Graph.Auth.DeviceCodeProvider.<GetNewAccessTokenAsync>d__14.MoveNext()
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Graph.Auth.DeviceCodeProvider.<AuthenticateRequestAsync>d__13.MoveNext()
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Graph.AuthenticationHandler.<SendAsync>d__16.MoveNext()
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Net.Http.HttpClient.<FinishSendAsyncBuffered>d__62.MoveNext()
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Graph.HttpProvider.<SendRequestAsync>d__19.MoveNext()

[编辑3]

以下代码具有完全相同的问题:

IDriveItemChildrenCollectionPage children = await graphClient.Me.Drive.Root.Children
    .Request()
    .GetAsync();

这似乎是Graph SDK的一般问题。

[编辑4]

我进行了Azure Active Directory的应用程序注册,并获得了以下最内部的例外:

AADSTS70000: The provided value for the input parameter 'device_code' is not valid.
Trace ID: 7067d5e9-d811-49ed-9b8b-7a0b9a0c4c00
Correlation ID: a4faa514-debc-47dc-8ef3-0b9853949e28
Timestamp: 2020-01-11 06:47:36Z

同样,我必须等待10分钟以上才能引发异常。

c# uwp microsoft-graph onedrive
1个回答
0
投票

我不确定为什么不返回,但是Camera Rollspecial folders之一(因此是保留的文件夹名称)。在配置Drive或第一次连接特定服务时(即由OneDrive应用创建“相机胶卷”)时,会自动生成其中的少数几个:

  • 文档
  • 照片
  • 相机胶卷
  • 应用根目录
  • 音乐

为了检索“相机胶卷”文件夹,请通过其“ id”进行请求:

GET /me/drive/special/cameraroll
© www.soinside.com 2019 - 2024. All rights reserved.