Исключение WSACancelBlockingCall с Amazon - PullRequest
3 голосов
/ 25 марта 2011

У меня есть случайное исключение при чтении / хранении объектов с помощью Amazon S3 из приложения asp.net.

Исключение говорит: Невозможно прочитать данные из транспортного соединения: операция блокировки была прервана вызовом WSACancelBlockingCall. Операция блокировки была прервана вызовом WSACancelBlockingCall

at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)

Любые идеи о том, как я могу найти, что является причиной этой ошибки?

вот моя функция чтения:

    public Image GetImage(string fullKey, out string errorMessage)
    {
        errorMessage = null;
        try
        {
            GetObjectResponse response = s3Client.GetObject(new GetObjectRequest()
            {
                BucketName = BucketName,
                Key = fullKey,
                Timeout = ImportTimeout
            });
            return Image.FromStream(response.ResponseStream);
        }
        catch (Exception e)
        {
            errorMessage = e.Message;
            Log.Current.WriteError(e);
        }
        return null;
    }

s3Client инициализируется в конструкторе этого класса:

s3Client = AWSClientFactory.CreateAmazonS3Client(AWSAccessKey, AWSSecretKey);

1 Ответ

2 голосов
/ 28 марта 2011

Согласно документации aws, правильно обернуть вызов GetObject с помощью:

http://docs.amazonwebservices.com/sdkfornet/latest/apidocs/html/M_Amazon_S3_AmazonS3_GetObject.htm

Это исключает все исключения, связанные с методом GetObject

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...