2009-12-15 16 views
6

Bir vsftpd sunucusuna dosya yüklemek için System.Net.FtpWebRequest kullanırsam, dosyanın düzgün yüklenip yüklenmediğini kontrol etmek için GetResponse kullanmalı mıyım? Ya da her hata için bir istisna alıyorum? System.Net.FtpWebResponse’da neleri kontrol etmeliyim?Hatalar için FtpWebRequest nasıl denetlenir

cevap

6

Evet, böyle ... istek nesneden FtpWebResponse nesneyi kapmak istiyorum:

FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverUri); 
request.Method = WebRequestMethods.Ftp.UploadFile; 

FtpWebResponse response = (FtpWebResponse) request.GetResponse(); 
request.KeepAlive = false; 

byte[] fileraw = File.ReadAllBytes("CompleteLocalPath"); 

try 
{ 
    Stream reqStream = request.GetRequestStream(); 

    reqStream.Write(fileraw, 0, fileraw.Length); 
    reqStream.Close(); 
} 
catch (Exception e) 
{ 
    response = (FtpWebResponse) request.GetResponse(); 
    // Do something with response.StatusCode 
    response.Close(); 
} 

Sen Ftp.WebResponse.StatusCode kontrol etmek isteyeceklerdir.

StatusCode'da geri gönderilebilecek çok az üye var, bu nedenle karşı denetleme yapmak zor olabilir.

İşte döndürülebilir/açıklamaları kodlarının bir listesi:

FtpStatusCode

DÜZENLEME: bir şey bir transfer ile yanlış giderse, bir dere yazar ateşlemek ne zaman bir özel durum oluşturması gerekir. Yapabilecekleriniz, etrafınızdaki her şeyi denemektir, eğer bir şey ters giderse durum kodunu alabilecek ve kullandığınız günlük ortamına yazdırabileceksiniz, böylece sorunun ne olduğunu görebilirsiniz. Tüm bunları yansıtmak için yukarıdaki kodu değiştirdim (sadece tek bir aktarım yolu kullanarak kendi başınıza kullanabilirsiniz).

+0

FtpWebResponse'de neleri kontrol etmeliyim? Çeşitli FTP sunucuları farklı sonuçlar sağlar? O zaman ne sonuçlar vsftpd verebilir? – magol

+0

FtpStatusCode'un 300'ün altında olup olmadığını kontrol etmek doğru mu? – magol

İlgili konular