2010-08-06 120 views
1

我正在使用亚马逊WS SDK for .net并试图获得S3ObjectMetaData Info,作为回报,我得到的是下面的一个例外。好像AmazonS3Client连接关闭或超时,我不确定原因。Amazon S3 GetObjectMetadata失败(底层连接已关闭)?

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

问候。

堆栈跟踪: System.Web.HttpUnhandledException:引发类型为'System.Web.HttpUnhandledException'的异常。 ---> System.Net.WebException:底层连接已关闭:发送时发生意外错误。 ---> System.IO.IOException:无法从传输连接读取数据:连接尝试失败,因为连接方在一段时间后没有正确响应,或者由于连接的主机未响应而导致建立的连接失败。 ---> System.Net.Sockets.SocketException:连接尝试失败,因为连接方在一段时间后没有正确响应,或者由于连接的主机未能响应而建立的连接失败 at System.Net.Sockets.Socket接收(Byte []缓冲区,Int32偏移量,Int32大小,SocketFlags socketFlags) at System.Net.Sockets.NetworkStream.Read(Byte [] buffer,Int32 offset,Int32 size) ---内部异常堆栈跟踪结束--- at System.Net.Sockets.NetworkStream.Read(Byte [] buffer,Int32 offset,Int32 size) at System.Net.FixedSizeReader.ReadPacket(Byte [] buffer,Int32 offset,Int32 count) at System .Net.Security.SslState.StartReceiveBlob(Byte [] buffer,AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextRec eive(ProtocolToken消息,AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst,Byte [] buffer)在System.Net.Security.SslState.StartSendBlob(Byte [] incoming,Int32 count,AsyncProtocolRequest asyncRequest) ,AsyncProtocolRequest asyncRequest) 在System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 在System.Net.TlsStream.CallProcessAuthentication(对象状态) 在System.Threading.ExecutionContext.runTryCode(对象的UserData) 在System.Runtime .CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code,CleanupCode backoutCode,Object userData) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext,ContextCallback callback,Object state)System.Net.TlsStream.Write(Byte [] buffer,Int32 offset,System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result) )在System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback回调,对象状态)上的Int32大小) at System.Net.PooledStream.Write(Byte [] buffer,Int32 offset,Int32 size) at System.Net.ConnectStream.WriteHeaders(Boolean async) ---内部异常堆栈跟踪结束--- 在Amazon.S3.AmazonS3Client.ProcessRequestError(HttpWebRequest的请求,引发WebException我们,HttpWebResponse错误响应,字符串requestAddr,WebHeaderCollection & respHdrs,T型) 在Amazon.S3.AmazonS3Client.Invoke [T](S3Request userRequest) 在Amazon.S3 。一个mazonS3Client.GetObjectMetadata(GetObjectMetadataRequest请求)

回答

1

您是否使用https,并且您的存储桶名称具有'。'在里面?

尝试关闭HTTPS:

c.CommunicationProtocol = Protocol.HTTP; 使用(客户=亚马逊。AWSClientFactory.CreateAmazonS3Client(accessKeyID,secretAccessKeyID,c))

或者,如果您要保留HTTPS,请不要使用'。'来重制您的存储桶。在名下

+0

我没有。以桶的名义。但我必须检查我是否使用HTTPS – 2011-02-22 06:44:29

相关问题