服务器 returns 代码:使用 CreateUploadSession 上传文件时出现 InternalServerError
Server returns Code: InternalServerError when using CreateUploadSesssion to upload a file
我的应用程序可以正常通过连续上传将文件上传到 OneDrive、SharePoint。
目前,它已损坏,并在调用
时抛出 InternalServerError
var uploadSession = await graphClient.Drive.Items["01KGPRHTV6Y2GOVW7725BZO354PWSELRRZ"].ItemWithPath("_hamilton.png").CreateUploadSession().Request().PostAsync();
异常:
Status Code: InternalServerError
Microsoft.Graph.ServiceException: Code: InternalServerError
Message: Object reference not set to an instance of an object.
Inner error:
AdditionalData:
request-id: b3ab4fbb-e3c2-4e07-a353-4e2a73b5bf67
date: 3/10/2020 4:25:56 AM
ClientRequestId: b3ab4fbb-e3c2-4e07-a353-4e2a73b5bf67
at Microsoft.Graph.HttpProvider.SendAsync(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken cancellationToken)
at Microsoft.Graph.BaseRequest.SendRequestAsync(Object serializableObject, CancellationToken cancellationToken, HttpCompletionOption completionOption)
at Microsoft.Graph.BaseRequest.SendAsync[T](Object serializableObject, CancellationToken cancellationToken, HttpCompletionOption completionOption)
SDK: Microsoft.Graph 1.21.0
我们也遇到了同样的问题,但似乎是图 API 的问题,今天(2020 年 3 月 10 日)(可能)发生了变化。有人在 https://github.com/microsoftgraph/msgraph-sdk-dotnet/issues/646 提交了一个 github 问题,您可以关注,但如果您真的必须完成这项工作,您可以通过使用反射覆盖请求 url 来破解它。
var regex = new Regex(@"/microsoft\.graph\.createUploadSession$");
var reqUrl = uploadSessionReq.RequestUrl;
typeof(DriveItemCreateUploadSessionRequest)
.GetProperty(nameof(DriveItemCreateUploadSessionRequest.RequestUrl))
.GetSetMethod(nonPublic: true)
.Invoke(
uploadSessionReq,
new[]
{
regex.Replace(reqUrl, "/createUploadSession")
}
);
我的应用程序可以正常通过连续上传将文件上传到 OneDrive、SharePoint。 目前,它已损坏,并在调用
时抛出 InternalServerErrorvar uploadSession = await graphClient.Drive.Items["01KGPRHTV6Y2GOVW7725BZO354PWSELRRZ"].ItemWithPath("_hamilton.png").CreateUploadSession().Request().PostAsync();
异常:
Status Code: InternalServerError
Microsoft.Graph.ServiceException: Code: InternalServerError
Message: Object reference not set to an instance of an object.
Inner error:
AdditionalData:
request-id: b3ab4fbb-e3c2-4e07-a353-4e2a73b5bf67
date: 3/10/2020 4:25:56 AM
ClientRequestId: b3ab4fbb-e3c2-4e07-a353-4e2a73b5bf67
at Microsoft.Graph.HttpProvider.SendAsync(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken cancellationToken)
at Microsoft.Graph.BaseRequest.SendRequestAsync(Object serializableObject, CancellationToken cancellationToken, HttpCompletionOption completionOption)
at Microsoft.Graph.BaseRequest.SendAsync[T](Object serializableObject, CancellationToken cancellationToken, HttpCompletionOption completionOption)
SDK: Microsoft.Graph 1.21.0
我们也遇到了同样的问题,但似乎是图 API 的问题,今天(2020 年 3 月 10 日)(可能)发生了变化。有人在 https://github.com/microsoftgraph/msgraph-sdk-dotnet/issues/646 提交了一个 github 问题,您可以关注,但如果您真的必须完成这项工作,您可以通过使用反射覆盖请求 url 来破解它。
var regex = new Regex(@"/microsoft\.graph\.createUploadSession$");
var reqUrl = uploadSessionReq.RequestUrl;
typeof(DriveItemCreateUploadSessionRequest)
.GetProperty(nameof(DriveItemCreateUploadSessionRequest.RequestUrl))
.GetSetMethod(nonPublic: true)
.Invoke(
uploadSessionReq,
new[]
{
regex.Replace(reqUrl, "/createUploadSession")
}
);