环境: 
客户机:处于域环境
代理: ISA 协议全开。
ftp服务器:在公网上 Serv-U搭建,有username 和pwd ,并为账号设置了home目录。
用cute ftp是可以上传文件。
网上找的C# ftp 代码都不行。
{"远程服务器返回错误: (550) 文件不可用(例如,未找到文件,无法访问文件)。"}命令行Cmd 里ftp 也能登录并能查看文件。用IE窗口使用ftp协议登录不了。请问有谁实现过这种环境下的代码,请提供代码参考,谢谢。。
注:网上找的代码就别贴了。

解决方案 »

  1.   

    是不是编码的问题?看一下ftp服务器的编码是什么。
      

  2.   


    报500错误那不是上传代码不行。。一般都是文件夹权限设置的问题还有仔细检查一下URL
      

  3.   

    各位大哥帮忙看看,谢谢private void button1_Click(object sender, EventArgs e)
            {
                Upload(@"D:\TastMeasure.xsl", @"ftp://ftpip/TastMeasure.xsl", "user", "pwd");
            }
            bool Upload(string fileName, string uploadUrl, string UserName, string Password)
            {//fileName上傳的檔案ex : c:\abc.xml , uploadUrl上傳的FTP伺服器路徑ftp://127.0.0.1,UserName使用者FTP登入帳號 , Password使用者登入密碼            Stream requestStream = null;
                FileStream fileStream = null;
                FtpWebResponse uploadResponse = null;            try
                {
                   
                    FtpWebRequest uploadRequest = (FtpWebRequest)WebRequest.Create(uploadUrl);
                    uploadRequest.Method = WebRequestMethods.Ftp.UploadFile;//設定Method上傳檔案
                    uploadRequest.Proxy = null;
                    if (UserName.Length > 0)//如果需要帳號登入
                    {
                        NetworkCredential nc = new NetworkCredential(UserName, Password);
                        uploadRequest.Credentials = nc; //設定帳號                }                requestStream = uploadRequest.GetRequestStream();                fileStream = File.Open(fileName, FileMode.Open);                byte[] buffer = new byte[1024];                int bytesRead;                while (true)
                    {//開始上傳資料流                    bytesRead = fileStream.Read(buffer, 0, buffer.Length);
                        if (bytesRead == 0)
                            break;
                        requestStream.Write(buffer, 0, bytesRead);
                    }
                    requestStream.Close();
                    uploadResponse = (FtpWebResponse)uploadRequest.GetResponse();
                    return true;
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }            finally
                {
                    if (uploadResponse != null)
                        uploadResponse.Close();
                    if (fileStream != null)
                        fileStream.Close();
                    if (requestStream != null)
                        requestStream.Close();
                }        }
    执行到requestStream = uploadRequest.GetRequestStream();就报异常了。。
    {"远程服务器返回错误: (550) 文件不可用(例如,未找到文件,无法访问文件)。"}

      

  4.   


    那为什么 Cute ftp工具能上传呢?呵呵。。
      

  5.   

    你用cmd查看的中文文件是乱码吗?
      

  6.   

    兄弟 我也遇见类似问题,怎么个设置服务器模式?
    在linux的vsftpd.conf中设置port或pave?如果是怎么设置呢?
      

  7.   

    怎么查看用户权限呢?我在linux中用chmod 777 /home/vsftpd改了权限(vsftpd是我的根目录)