Closed Kyrodan closed 7 years ago
Thanks for posting. This is a bug. By default the CopyRequest should have the correct header applied. However, here's a workaround you can use:
var result = await api
.Drive
.Root
.ItemWithPath(sourcepath)
.Copy(destFilename, new ItemReference {Id = destItem.Id})
.Request(new[] {new Option("Prefer", "respond-async") })
.PostAsync();
That should apply the missing header. Please try that out and report back.
After changing new Option(...)
to new HeaderOption(...)
it worked, the file gets copied.
But using the resulting AsyncMonitor always throws an exception. Code:
var item = await result.PollForOperationCompletionAsync(null, CancellationToken.None);
Error:
{"Eine Ausnahme vom Typ \"Microsoft.Graph.ServiceException\" wurde ausgelöst."}
Data: {System.Collections.ListDictionaryInternal}
Error: {Code: itemNotFound
Throw site: 6930.fe44
Message: Item does not exist
}
HResult: -2146233088
HelpLink: null
InnerException: null
Message: "Eine Ausnahme vom Typ \"Microsoft.Graph.ServiceException\" wurde ausgelöst."
Source: "Microsoft.Graph.Core"
StackTrace: " bei Microsoft.Graph.HttpProvider.<SendAsync>d__19.MoveNext()\r\n--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---\r\n bei System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n bei Microsoft.Graph.AsyncMonitor`1.<PollForOperationCompletionAsync>d__4.MoveNext()\r\n--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---\r\n bei System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n bei System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()\r\n bei KeeAnywhere.StorageProviders.OneDrive.OneDriveStorageProvider.<Copy>d__4.MoveNext() in D:\\Entwicklung\\KeeAnywhere\\KeeAnywhere\\StorageProviders\\OneDrive\\OneDriveStorageProvider.cs:Zeile 83."
TargetSite: {Void MoveNext()}
The copied file has been succesfully created, only the AsyncMonitor
fails.
Now I am using Graph-API which does not have this issue.
Used libraries:
I tried to copy a file with this code:
All I get is a
Microsoft.Graph.ServiceException
:What can I do to copy an existing item with a new name to another folder?