Ошибка при использовании FTPWebRequest на IIS7.5 и .NET 4.0 - PullRequest
0 голосов
/ 30 июня 2011

У меня есть простой класс в веб-сервисе ASP.NET.Он отлично работает в моей локальной системе и даже в среде разработки, которую я настроил, но каждый раз, когда я пытаюсь отправить файл на рабочий сервер, я получаю следующую ошибку:

Exception Error: The underlying provider failed on Open.

Вот кодэто называется:

public class FTPHelper
{
        public static string SendFile(string ftpuri, string username, string password, string ftppath, string filename, byte[] datatosend)
        {
            if (ftppath.Substring(ftppath.Length - 1) != "/")
            {
                ftppath += "/";
            }
            FtpWebRequest ftp = (FtpWebRequest) FtpWebRequest.Create( ftpuri + ftppath + filename);
            ftp.Method = WebRequestMethods.Ftp.UploadFile;
            ftp.Credentials = new NetworkCredential(username, password);
            ftp.UsePassive = true;
            ftp.ContentLength = datatosend.Length;
            Stream requestStream = ftp.GetRequestStream();
            requestStream.Write(datatosend, 0, datatosend.Length);
            requestStream.Close();

            FtpWebResponse ftpresponse = (FtpWebResponse)ftp.GetResponse();

            return ftpresponse.StatusDescription;
        }
    }

Как я могу устранить эту проблему.Сервер IIS 7.5, работающий на Windows 2008 Server.Я использую .NET 4.0.Есть ли простая причина, по которой FtpWebResponse не будет работать?

Если это проблема безопасности, то есть ли способ ее обойти?Мне нужно, чтобы это сработало немедленно.

1 Ответ

0 голосов
/ 06 июля 2011

Это была проблема безопасности, пользователь, который работал на веб-сайте, не имел разрешения для установки FTP-соединения. Я программист, а не администратор веб-сайта, поэтому я понятия не имел, как это сделать. После поиска в справке IIS от Microsoft по IIS, наконец, прошел через это. Решение о смене пользователя на SuperUser:

https://superuser.com/q/307168/68967

Если у кого-то есть более подходящие решения, пожалуйста, ответьте. Если кто-то считает, что это может вызвать проблемы с безопасностью, пожалуйста, опубликуйте дополнительную информацию.

...