2016-04-01 144 views
2

這種問題已經被問過好幾次了,我明白它爲什麼會發生,除了重試之外,我們可能無法做到這一點。System.Net.WebException:遠程名稱無法解析

雖然我確實有一個關於名稱解析的問題。

我正在使用適用於3.5 .Net的AWS .Net SDK。我正在上傳一個大文件(> 500MB到1.5GB,醫學圖像)。我打電話給TransferUtility.Upload()方法。

對於大多數情況下,該方案效果很好。

偶爾我們會在上傳過程中出現此錯誤。通常在互聯網很慢時發生。

我可以捕獲異常並重試,這意味着從一開始就重新開始,因爲AWS代碼中發生異常。

我的問題是,如果程序已解決s3存儲桶名稱,並已上傳了一段時間,爲什麼它會給我名稱解析錯誤,而不是僅使用緩存解析名稱?

每個線程是否獨立解析名稱,並且線程由於網絡飽和而失敗?這是電腦設置嗎?這個錯誤我們能夠在包含Charter的Windows 10計算機上非常一致地重現,因爲ISP正在上傳800MB文件。

約250MB上傳完成後發生錯誤。

這是實際的異常

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' 

回答

0

此網絡異常告訴你有一個與「名稱解析」的問題。什麼它不會告訴你的是,「名」它指的是「EndpointRegion」,例如:USEast1,USEast2等

當使用Amazon.S3.Transfer.Transferutility這是至關重要的EndpointRegion您在Upload呼叫匹配使用您要上傳的存儲桶的數量。

在我的情況下使用RegionEndpoint.GetBySystemName("USEast1")RegionEndpoint.GetBySystemName("US-East-1")是差異的製造商。

+0

哼,我得看看這個。現在我有一段時間沒有這個例外了。我現在要密切關注這一點。如果我記得,我在傳輸過程中遇到了異常,所以它會傳輸文件的一部分,然後出錯。在這裏欣賞你的答案。 – user618886

+0

沒問題。如果它適合你,將欣賞upvote /標記爲正確的。 – pimbrouwers

相關問題