У меня следующий код c #.Он прекрасно работает при компиляции с .NET Framework 3.5 или 2.0 (я не тестировал его с 3.0, но, скорее всего, он тоже будет работать).Проблема заключается в том, что происходит сбой при сборке на основе .NET Framework 4.0.
FtpWebRequest Ftp = (FtpWebRequest)FtpWebRequest.Create(Url_ + '/' + e.Name);
Ftp.Method = WebRequestMethods.Ftp.UploadFile;
Ftp.Credentials = new NetworkCredential(Login_, Password_);
Ftp.UseBinary = true;
Ftp.KeepAlive = false;
Ftp.UsePassive = true;
Stream S = Ftp.GetRequestStream();
byte[] Content = null;
bool Continue = false;
do
{
try
{
Continue = false;
Content = File.ReadAllBytes(e.FullPath);
}
catch (Exception)
{
Continue = true;
System.Threading.Thread.Sleep(500);
}
} while (Continue);
S.Write(Content, 0, Content.Length);
S.Close();
FtpWebResponse Resp = (FtpWebResponse)Ftp.GetResponse();
if (Resp.StatusCode != FtpStatusCode.CommandOK)
Console.WriteLine(Resp.StatusDescription);
Проблема заключается в вызове Stream S = Ftp.GetRequestStream (); , который создает экземпляр enWebException с сообщением «Удаленный сервер возвратил ошибку: (500) Синтаксическая ошибка, команда не распознана».
Кто-нибудь знает, почему это так?
PS.Я общаюсь с виртуальным ftp-сервером в ECM Alfresco.
edit: Я недавно узнал, что на Windows 7 невозможно иметь службу Windows .NET Framework 3.5, поэтому было бы неплохо решить эту проблему.Что мне нужно сделать, это загрузить файл в ftp - есть ли другой (работающий) способ в c #?
edit2: предыдущее редактирование не соответствует действительности, я несколько запутался ...