Gecenin başında The remote server returned an error 550 hatası ve çözümü yazısında ASP.NET ile FTP protokolü üzerinden dosya yükleme işlemlerinde alınan hatalardan ve sebeplerinden bahsetmiştim. Bu yazıda da benzer durumlarda ortaya çıkan bir hata kodu olan The underlying connection was closed: The server committed a protocol violation. hatasından bahsedelim.
Not: debug="false" olduğu için bu temsili hata görselinde hata detayları görüntülenememiş.
Bu hatanın genel sebebi, sunucuya FTP protokolü ile göndermek istediğiniz dosyanın bir protokol ihlaline yol açmasıdır. Örneğin FTPS kullanıyor olmanız, SSL sertifikanız, hatalı parola ya da FTP kullanıcısı bilgileri ile FTP protokolünden sunucuya bağlanmaya çalışmanız bu hata kodunu görmenize neden olabilir.
En olası çözüm olarak ise (eğer ftp bilgilerinizden ve yetkilerinden kesin olarak eminseniz) kullandığınız FTP hesabının bilgileri ile erişim/güncelleme yetkisi olan klasörleri kontrol ettikten sonra aşağıdaki düzenlemeleri yapmaktır.
FtpWebRequest fwr;
fwr.KeepAlive = True;