2015-12-21 51 views
0

我試圖從Azure FTP文件直到某個FTP目標。.NET WebClient在我的本地主機上工作,但不在Azure上

當我在本地做,它的工作很好。好吧...

我發佈這個webjob高達Azure和它的偉大工程,直到它試圖做FTP位。示

以下錯誤:

[2015年12月21日3點18分03秒> 944464:INFO] 2015年12月21日03:18:03.6127 | ERROR |無法連接到遠程服務器。堆棧跟蹤:在System.Net.WebClient.UploadFile(Uri地址,字符串方法,字符串文件名)

[12/21/2015 03:18:03> 944464:INFO] at System.Net.WebClient.UploadFile字符串的地址,字符串的方法,字符串文件名)

這是我簡單的代碼...

public void UploadFile(FileInfo fileInfo) 
{ 
    try 
    { 
     using (var client = new WebClient()) 
     { 
      var destination = new Uri($"ftp://{_server}/{fileInfo.Name}"); 
      client.Credentials = new NetworkCredential(_username, _password); 
      client.UploadFile(destination, "STOR", fileInfo.FullName); 
     } 
    } 
    catch (Exception exception) 
    { 
     // snipped. 
     throw; 
    } 
} 

所以這是非常該死的簡單。

難道這是一個奇怪的被動/主動問題?就像我們的辦公室互聯網很簡單,而azure的設置很複雜,......因此它不能創建FTP連接?

現在 - 這是事情也令人沮喪的地方。 本來我使用的是第三方FTP庫,但這並工作..但有些文件只得到部分上傳..這就是爲什麼我試圖使用WebClient代替。所以我知道,我的天藍色的webjob「網站」thingy 可以 FTP up。 (沒有阻塞的端口等)。

任何線索,我可以做什麼,在這裏?

+0

難道是FTP服務器阻塞了一些IP範圍? –

+0

沒有 - 因爲在開幕帖子的最後一部分(上圖)中,我使用了第三方FTP程序包,並且連接正常。它並不總是上傳文件100%。這就是爲什麼我嘗試另一種方式... –

+0

是的,我讀了這部分:)但有時Web應用程序開始/停止或重新部署,並更改出站IP地址。 –

回答

0

正在關注Kristensen's simple example,我可以做到。但我不確定你的FTP網址目的地的格式。

你嘗試:

var destination = new Uri(string.Format("ftp://{0}/{1}", _server,fileInfo.Name)); 

假設_server某處定義,我沒有看到它在你的代碼,您的憑證有權在該位置寫。

+0

FTP網址是c#6 sytanx。'_server'是私有的,但對於類是全局的。我的cred有權限,因爲當我在本地運行相同的代碼時,它可以工作。 –

+0

這很奇怪。我發現的關於這個問題的每一個內容總是指向一些防火牆或者端口阻塞,特別是如果FTP服務器是「內部」的。我發現有一篇文章提到設置FTP上傳到活動:http:// stackoverflow。COM /問題/ 14708205/PowerShell的需求到創造 - 一個活躍的FTP傳輸連接,從-A-PS-腳本。 –

+0

這就是我要走的路。我一直在想:在短時間內你已經打了太多次我們的FTP服務器,所以......我們會在短時間內阻止你的IP。我爲什麼這麼想?好了,一天後,我成功地上傳了一些文件_而不更改任何代碼_ ..回來20分鐘後(每2分鐘更多的成功上傳後),我發現我突然無法訪問服務器。代碼很好 - >看起來像服務器問題:/ –

相關問題