Tôi muốn chuyển đổi các phương pháp async AWS S3 thành một nhiệm vụ sử dụng một cái gì đó như thế này:Đặt đối tượng đến Amazon S3 sử dụng .net async
using (var client = AWSClientFactory.CreateAmazonS3Client(accessKey, secretKey))
{
var request = new PutObjectRequest();
// ... set request properties ...
await Task.Factory.FromAsync<PutObjectRequest, PutObjectResponse>(
client.BeginPutObject,
client.EndPutObject,
request,
null
);
}
Tuy nhiên, tôi nhận được ngoại lệ sau đây:
System.ArgumentException: The IAsyncResult object was not returned from the corresponding asynchronous method on this class.
Parameter name: asyncResult
at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at Amazon.S3.AmazonS3Client.getResponseCallback[T](IAsyncResult result)
at Amazon.S3.AmazonS3Client.endOperation[T](IAsyncResult result)
at Amazon.S3.AmazonS3Client.EndPutObject(IAsyncResult asyncResult)
at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
Cuộc gọi của tôi có phải là FromAsync
không chính xác hoặc có sự cố gì khác không?
P.S.
- .NET Framework 4.5
- AWSSDK phiên bản 1.5.17.0
Tôi nghĩ rằng 'FromAsync' của bạn có vẻ chính xác. Tôi sẽ nghi ngờ một lỗi trong AWSSDK. –
Trả về 'client.BeginPutObject' là gì? –
FYI, tôi vừa thử điều này. Nó hoạt động. Tôi đã không bao giờ gặp phải một cái gì đó mà trả về 'IAsyncResult' hơn là' Task 'vì vậy cảm ơn cho mã! –
Sethi