amazon-s3 - Amazon 的 WSACancelBlockingCall 异常

标签 amazon-s3

当我从 asp.net 应用程序使用 Amazon S3 读取/存储对象时,偶尔会出现异常。

异常说: 无法从传输连接读取数据:调用 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);

最佳答案

根据 aws 文档,使用以下方式包装对 GetObject 的调用是正确的:

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

这消除了与 GetObject 方法相关的所有异常

关于amazon-s3 - Amazon 的 WSACancelBlockingCall 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5425511/

相关文章:

python - 如何在以本地模式运行的 pyspark 中从 S3 读取数据?

amazon-web-services - 如何从 Cloud Formation 获取 Elastic Container Repository URI?

amazon-s3 - 使用 s3cmd 同步时如何指定 MIME 类型映射?

amazon-web-services - 如何在使用 lambda@edge 调整图像大小时修复拒绝访问错误

ios - AWS iOS v2 Cognito 与 STS 身份验证

amazon-s3 - 如何使用aws cli更改对象的内容类型?

amazon-web-services - AWS 预签名 url acl 公共(public)读取无效签名

来自 Amazon S3 MP4/MOV URL 的 iOS 缩略图

amazon-s3 - Amazon S3 中的 Etag 定义已更改

mysql - 使用 MySQL Workbench 连接到 AWS