【问题标题】:Amazon S3 GetObjectMetadata failed (The underlying connection was closed)?Amazon S3 GetObjectMetadata 失败(底层连接已关闭)?
【发布时间】:2010-08-06 14:06:07
【问题描述】:

我正在使用适用于 .net 的 Amazon WS SDK 并尝试获取 S3ObjectMetaData 信息,作为回报,我得到的是以下异常。好像 AmazonS3Client 连接关闭或超时,我不确定原因。

我该如何解决这个错误。有什么方法可以检查 S3Client 是否不再有效并需要重新创建其实例?

问候。

堆栈跟踪: System.Web.HttpUnhandledException:引发了“System.Web.HttpUnhandledException”类型的异常。 ---> System.Net.WebException:底层连接已关闭:发送时发生意外错误。 ---> System.IO.IOException: Unable to read data from the transport connection: 连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立连接失败,因为连接的主机没有响应。 ---> System.Net.Sockets.SocketException: 连接尝试失败,因为连接方在一段时间后没有正确响应,或建立连接失败,因为连接的主机没有响应 在 System.Net.Sockets.Socket.Receive(Byte[] 缓冲区,Int32 偏移量,Int32 大小,SocketFlags socketFlags) 在 System.Net.Sockets.NetworkStream.Read(字节 [] 缓冲区,Int32 偏移量,Int32 大小) --- 内部异常堆栈跟踪结束 --- 在 System.Net.Sockets.NetworkStream.Read(字节 [] 缓冲区,Int32 偏移量,Int32 大小) 在 System.Net.FixedSizeReader.ReadPacket(字节 [] 缓冲区,Int32 偏移量,Int32 计数) 在 System.Net.Security.SslState.StartReceiveBlob(字节 [] 缓冲区,AsyncProtocolRequest asyncRequest) 在 System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken 消息,AsyncProtocolRequest asyncRequest) 在 System.Net.Security.SslState.StartSendBlob(字节 [] 传入,Int32 计数,AsyncProtocolRequest asyncRequest) 在 System.Net.Security.SslState.ForceAuthentication(布尔接收第一,字节 [] 缓冲区,AsyncProtocolRequest asyncRequest) 在 System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResultlazyResult) 在 System.Net.TlsStream.CallProcessAuthentication(对象状态) 在 System.Threading.ExecutionContext.runTryCode(对象 userData) 在 System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode 代码,CleanupCode backoutCode,对象 userData) 在 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext,ContextCallback 回调,对象状态) 在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback 回调,对象状态) 在 System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult 结果) 在 System.Net.TlsStream.Write(字节 [] 缓冲区,Int32 偏移量,Int32 大小) 在 System.Net.PooledStream.Write(Byte[] 缓冲区,Int32 偏移量,Int32 大小) 在 System.Net.ConnectStream.WriteHeaders(布尔异步) --- 内部异常堆栈跟踪结束 --- 在 Amazon.S3.AmazonS3Client.ProcessRequestError(HttpWebRequest 请求,WebException 我们,HttpWebResponse errorResponse,字符串 requestAddr,WebHeaderCollection& respHdrs,类型 t) 在 Amazon.S3.AmazonS3Client.Invoke[T](S3Request userRequest) 在 Amazon.S3.AmazonS3Client.GetObjectMetadata(GetObjectMetadataRequest 请求)

【问题讨论】:

    标签: .net amazon-s3


    【解决方案1】:

    您是否使用 https,并且您的存储桶名称带有“.”在里面?

    尝试关闭 HTTPS:

    c.CommunicationProtocol = 协议.HTTP; 使用 (client = Amazon.AWSClientFactory.CreateAmazonS3Client(accessKeyID, secretAccessKeyID,c))

    或者,如果您想保留 HTTPS,请重新制作不带“.”的存储桶以名义

    【讨论】:

    • 我没有。以存储桶的名义。但我必须检查我是否使用 HTTPS
    猜你喜欢
    • 2016-11-30
    • 1970-01-01
    • 2013-10-31
    • 2018-01-31
    • 2017-09-21
    • 2017-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多