2016-04-01 14 views
2

Diese Art von Frage wurde mehrmals gestellt, und ich verstehe, warum es passiert, und wahrscheinlich können wir nichts dagegen tun, außer es erneut zu versuchen.System.Net.WebException: Der entfernte Name konnte nicht aufgelöst werden

Ich habe allerdings eine Frage zur Namensauflösung.

Ich verwende AWS. Net SDK für 3.5. Net. Ich lade eine große Datei hoch (> 500 MB bis zu 1,5 GB, medizinische Bilder). Ich rufe TransferUtility.Upload() Methode.

Zum größten Teil funktioniert das Programm großartig.

Gelegentlich erhalten wir diesen Fehler in der Mitte des Uploads. Normalerweise passiert es, wenn das Internet langsam ist.

Ich kann die Ausnahme abfangen und erneut versuchen, was bedeutet, von Anfang an rery, da Ausnahme innerhalb des AWS-Codes passiert.

Meine Frage ist, wenn das Programm den s3-Bucket-Namen aufgelöst hat und seit einer Weile hochlädt, warum würde es mir Namensauflösungsfehler geben, anstatt nur den zwischengespeicherten aufgelösten Namen zu verwenden?

Löscht jeder Thread den Namen unabhängig und einer der Thread ist fehlgeschlagen, da das Netzwerk gesättigt ist? Ist das eine Computereinstellung? Diesen Fehler konnten wir auf einem Windows-10-Rechner ziemlich gut reproduzieren, wobei Charter als ISP eine 800-MB-Datei hochlud.

Der Fehler trat auf, nachdem ca. 250 MB Upload durchgeführt wurden.

Dies ist die eigentliche Ausnahme

Exception during upload :Amazon.Runtime.AmazonServiceException: 
A WebException with status NameResolutionFailure was thrown. ---> 
System.Net.WebException: The remote name could not be resolved: 'my-bucket.s3.amazonaws.com' 

Antwort

0

Diese Web-Ausnahme wird Ihnen die es gab ein Problem mit der „Namensauflösung“ zu erzählen. Was es nicht sagen, ist, dass der „Name“, um es mit Bezug ist, ist die „EndpointRegion“, zum Beispiel: USEast1, USEast2 usw.

Wenn die Amazon.S3.Transfer.Transferutility mit es entscheidend ist, dass die EndpointRegion verwenden Sie in den Upload Anruf STREICHHöLZER die des Buckets, in den du hochlädst.

In meinem Fall mit RegionEndpoint.GetBySystemName("USEast1") vs RegionEndpoint.GetBySystemName("US-East-1") war der Unterschied Maker.

+0

hum, ich muss das untersuchen. Seit einer Weile habe ich diese Ausnahme nicht mehr gehabt. Ich werde jetzt genau darauf achten. Wenn ich mich erinnere, bekam ich die Ausnahme mitten in einer Übertragung, so dass es einen Teil der Datei überträgt und dann einen Fehler gibt. Schätze deine Antwort hier. – user618886

+0

Kein Problem. Wenn es für Sie klappt, würden Sie die Upvote/Markierung als korrekt bewerten. – pimbrouwers

Verwandte Themen