2010-08-06 5 views
1

J'utilise Amazon WS SDK pour .net et j'essaie d'obtenir S3ObjectMetaData Info et en retour ce que j'ai obtenu est une exception ci-dessous. On dirait que la connexion AmazonS3Client se ferme ou expire, je ne suis pas sûr de la cause.Amazon S3 GetObjectMetadata a échoué (la connexion sous-jacente a été fermée)?

Comment puis-je corriger cette erreur. Est-il possible de vérifier si S3Client n'est plus valide et doit recréer son instance?

Cordialement.

Stack Trace: System.Web.HttpUnhandledException: Exception de type 'System.Web.HttpUnhandledException' a été levée. ---> System.Net.WebException: La connexion sous-jacente était fermée: une erreur inattendue s'est produite sur un envoi. ---> System.IO.IOException: impossible de lire les données de la connexion de transport: une tentative de connexion a échoué car la partie connectée n'a pas répondu correctement après un certain temps ou la connexion établie a échoué car l'hôte connecté n'a pas répondu. ---> System.Net.Sockets.SocketException: une tentative de connexion a échoué car la partie connectée n'a pas répondu correctement après un certain temps ou la connexion établie a échoué car l'hôte connecté n'a pas répondu sur System.Net.Sockets.Socket .Receive (Byte [] tampon, décalage Int32, taille Int32, SocketFlags socketFlags) à System.Net.Sockets.NetworkStream.Read (tampon Byte [], décalage Int32, taille Int32) --- Fin de la trace de pile d'exception interne --- à System.Net.Sockets.NetworkStream.Read (Byte [] tampon, décalage Int32, taille Int32) à System.Net.FixedSizeReader.ReadPacket (octet [] tampon, décalage Int32, compte Int32) au système .Net.Security.SslState.StartReceiveBlob (tampon Byte [], AsyncProtocolRequest asyncRequest) à System.Net.Security.SslState.CheckCompletionBeforeNextRec eive (message ProtocolToken, AsyncProtocolRequest asyncRequest) à System.Net.Security.SslState.StartSendBlob (Byte [] incoming, Int32 count, AsyncProtocolRequest asyncRequest) à System.Net.Security.SslState.ForceAuthentication (Boolean receiveFirst, Byte [] tampon , AsyncProtocolRequest asyncRequest) à System.Net.Security.SslState.ProcessAuthentication (LazyAsyncResult lazyResult) à System.Net.TlsStream.CallProcessAuthentication (état de l'objet) à System.Threading.ExecutionContext.runTryCode (Object userData) à System.Runtime .CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup (code TryCode, CleanupCode backoutCode, Object userData) à System.Threading.ExecutionContext.RunInternal (ExecutionContext executionContext, rappel ContextCallback, état de l'objet) à System.Threading.ExecutionContext.Run (ExecutionContext executionContext, rappel ContextCallback, état d'objet) à System.Net.TlsStream.ProcessAuthentication (résultat LazyAsyncResult) à System.Net.TlsStream.Write (tampon Byte [], décalage Int32, Taille Int32) à System.Net.PooledStream.Write (Buffer Byte [], décalage Int32, taille Int32) à System.Net.ConnectStream.WriteHeaders (Boolean async) --- Fin de la trace de pile d'exception interne --- à Amazon.S3.AmazonS3Client.ProcessRequestError (HttpWebRequest demande, nous WebException, HttpWebResponse ErrorResponse, String requestAddr, WebHeaderCollection & respHdrs, type t) à Amazon.S3.AmazonS3Client.Invoke [T] (S3Request userRequest) à Amazon.S3 .UNE mazonS3Client.GetObjectMetadata (Demande GetObjectMetadataRequest)

Répondre

1

Utilisez-vous https, et le nom de votre seau a '' dedans?

Essayez de désactiver HTTPS:

c.CommunicationProtocol = Protocol.HTTP; en utilisant (client = Amazon.AWSClientFactory.CreateAmazonS3Client (accessKeyID, secretAccessKeyID, c))

Ou si vous souhaitez conserver HTTPS, refaites votre bucket sans '.' dans le nom

+0

je n'ai pas. au nom du seau. mais je vais devoir vérifier si j'utilise HTTPS –

Questions connexes