2015-10-05 63 views
0

我已經搜索了StackOverflow站點以查找此特定問題,但沒有運氣。 有項目關閉,但沒有完全處理我的問題。不一致的連接將文件從Azure上傳到Amazon SFTP站點(WinSCP)

我有一個C#應用程序,它使用最新的WinSCP(5.7.5)Nuget。 應用程序在Azure服務器上運行,並嘗試將多個文件上載到Amazon SFTP站點。

爲了測試,我發送了3個文件,每個文件都有一個新的連接。我通常從3個連接中選擇1個並立即成功發送,另外兩個連接約10秒鐘並給我一個連接超時錯誤。請注意,它似乎忽略超時設置。

如果我在本地運行相同的應用程序(不在Azure中),它每次都運行一致。

任何想法?我真的沒有訪問亞馬遜FTP站點來更改設置或任何東西。我嘗試了被動/非被動模式,並禁用Azure服務器上的防火牆。

WinSCP.SessionRemoteException: Network error: Connection to "xxx-xx-xxx-xx-xxx.c 
    ompute-1.amazonaws.com" timed out. 
     at WinSCP.SessionLogReader.Read(LogReadFlags flags) 
     at WinSCP.ElementLogReader.Read(LogReadFlags flags) 
     at WinSCP.SessionElementLogReader.Read(LogReadFlags flags) 
     at WinSCP.CustomLogReader.TryWaitForNonEmptyElement(String localName, LogRead 
    Flags flags) 
     at WinSCP.CustomLogReader.WaitForGroupAndCreateLogReader() 
     at WinSCP.Session.Open(SessionOptions sessionOptions) 
     at FTPTesting.Program.FtpFiles(String file, String destination) in c:\_git\as 
    setbook.joel_sandbox\FTPTesting\Program.cs:line 47 
+0

請問您可以顯示代碼嗎?什麼是配置的超時? – user1666620

+0

協議= WinSCP.Protocol.Scp, \t \t \t \t主機名= ConfigurationManager.AppSettings.Get( 「Modestspark.Ftp.Host」), \t \t \t \t用戶名= ConfigurationManager.AppSettings.Get(「Modestspark.Ftp.User 「), \t \t \t \t密碼= ConfigurationManager.AppSettings.Get(」 Modestspark.Ftp.Password「), \t \t \t \t SshHostKeyFingerprint = 」xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx「, \t \t \t \t GiveUpSecurityAndAcceptAnySshHostKey =真, \t \t \t \t TimeoutInMilliseconds = 30000, \t \t \t \t FtpMode = FtpMode.Passive, – joelp2600

+0

運行30秒超時,但是它在10秒左右失敗。 – joelp2600

回答

0

好吧,我做了一些更多的測試。出於好奇,我創建了一個幾乎完全相同的Azure機器,並將我的FTP應用程序移動到它。

根本沒有錯誤。它跑了幾個小時沒有消息。我保持它在第一臺壞的Azure機器上運行,它仍然產生間歇性錯誤。

我不太清楚如何分配天藍色的資源,但即使停止並啓動機器後,舊機器上的錯誤仍然存​​在。新機器從來沒有拋出錯誤的錯誤...

我讓這兩臺機器一夜之間運行。過了一段時間,舊機器退出拋出錯誤,並沒有拋出一個錯誤,因爲。在長時間出現錯誤之後,它會自我修復嗎?

我一直在處理幾周的間歇性錯誤,所以昨天不僅僅是有趣的事。