首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

FTP登陆有关问题

2013-08-04 
FTP登陆问题app.config内容如下?xml version1.0 encodingutf-8 ?configurationappSettingsad

FTP登陆问题
app.config内容如下

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="Host" value="192.168.0.32"/>
  <add key="Path" value=""/>
  <add key="User" value="hak"/>
  <add key="Pwd" value="fff"/>
  <add key="Port" value="21"/>
  </appSettings>
</configuration>

程序代码如下

        private void Form1_Load(object sender, EventArgs e)
        {
            try
            {
                _ftpInfo = ReadFtpConfig();
            }
            catch (Exception rex)
            {
                MessageBox.Show("读取配置失败!错误信息:" + rex.Message);
                _isFinishUpdate = true;
                Application.Exit();
                return;
            }
        }


        private FtpInfo ReadFtpConfig()
        {
            FtpInfo ftp = new FtpInfo()
            {
                RemoteHost = ConfigurationSettings.AppSettings["Host"],
                RemotePath = ConfigurationSettings.AppSettings["Path"],
                RemoteUser = ConfigurationSettings.AppSettings["User"],
                RemotePass = ConfigurationSettings.AppSettings["Pwd"],
                RemotePort = int.Parse(ConfigurationSettings.AppSettings["Port"])


            };
            return ftp;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            _ftpClient = new FTPClient(_ftpInfo);

            try
            {
                _ftpClient.Connect();
            }
            catch (Exception ex)
            {
                MessageBox.Show("连接FTP服务器失败!错误信息:" + ex.Message);
                _isFinishUpdate = true;

                return;
            }
        }

FtpInfo和FTPClient都是网上找的资源里的,一个是FTP信息的,一个是有关连接的,不知道为什么我每次按钮事件都是user XXX cannot log in.跟踪了connect()的执行
        public void Connect()
        {
            if (!EnsureHostIsIP())
            {
                bConnected = false;
                return;
            }
            socketControl = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            IPEndPoint ep = new IPEndPoint(IPAddress.Parse(_ftp.RemoteHost), _ftp.RemotePort);
            // 鏈結
            try
            {


                socketControl.Connect(ep);
            }
            catch (Exception)
            {
                throw new IOException("Couldn't connect to remote server");
            }
            // 获取应答码
            ReadReply();
            if (iReplyCode != 220)
            {
                DisConnect();
                throw new IOException(strReply.Substring(4));
            }
            // 登陸
            SendCommand("USER " + _ftp.RemoteUser);
            if (!(iReplyCode == 331 || iReplyCode == 230))
            {
                CloseSocketConnect();//关闭连接
                throw new IOException(strReply.Substring(4));
            }
            if (iReplyCode != 230)
            {
                SendCommand("PASS " + _ftp.RemotePass);
                if (!(iReplyCode == 230 || iReplyCode == 202))
                {
                    CloseSocketConnect();//关闭连接
                    throw new IOException(strReply.Substring(4));


                }
            }
            bConnected = true;
            // 切換到目录
            ChangeDir(_ftp.RemotePath);
        }
//每次在红色字体标出的语句执行完后iReplyCode 就变成了510,网上查询了下是未登录的意思,这什么情况,我IIS里默认FTP里设置的是允许匿名登录的啊,为什么这样就登录不了
[解决办法]
不是啊  匿名是用户名 anonymous  密码不写

热点排行