我在chilkat异常中收到以下消息
calling ConnectSocket2
IPV6 enabled connect with NO heartbeat.
Cannot connect, hostname is zero length
ConnectFailReason: 1
Failed to connect to FTP server.
Failed. --ConnectOnly_Ftp2
--ChilkatLog
我正在尝试使用chilkat的Ftp2类(使用c#)连接到FTP服务器,使用Connect方法。
以下是我用来连接FTP2的课程
public class FTPClient
{
private Ftp2 m_FtpInfo;
const int FTP_DEFAULT_PORT = 21;
public FTPClient()
{
m_FtpInfo = null;
}
public FTPClient(string userName, string password, string hostName, int port)
{
m_FtpInfo = new Ftp2();
m_FtpInfo.Account = userName;
m_FtpInfo.ClientIpAddress = hostName;
m_FtpInfo.Password = password;
//m_FtpInfo.Port = port;
}
public Ftp2 FTPInfo
{
get
{
if (m_FtpInfo == null)
m_FtpInfo = new Ftp2();
return m_FtpInfo;
}
set { m_FtpInfo = value; }
}
public void Connect()
{
lock (this)
{
if (m_FtpInfo == null)
{
m_FtpInfo = new Ftp2();
}
AppConfiguration appConfiguration = AppConfiguration.Instance;
/*
* Steps to connect to FTP site using Chilkat
* 1. Unlock the component by passing the code provided by Chilkat
* 2. Connect to the Site by specifying the hostname and port
*/
// Unlock the component.
if (!m_FtpInfo.UnlockComponent("AnythingWorksFor30DayTrial"))
{
throw new FTPConnectionExceptions(CommunicationError.UnlockFailed, m_FtpInfo.LastErrorText);
}
// Connect to the FTP server. (use a domain name or IP address)
if (!m_FtpInfo.Connect())
{
throw new FTPConnectionExceptions(CommunicationError.ConnectionFailed, m_FtpInfo.LastErrorText);
}
}
}
public void DisposeConnection()
{
lock (this)
{
if (m_FtpInfo == null) return;
if (m_FtpInfo.IsConnected)
m_FtpInfo.Disconnect();
m_FtpInfo = null;
}
}
任何人都可以告诉我哪里出错了吗?
答案 0 :(得分:0)
不需要第m_FtpInfo.ClientIpAddress = hostName;
行。未设置要连接的实际主机。
修改强>
Chilkat示例页面设置主机名,如下所示:
ftp.Hostname = "ftp.chilkatsoft.com";
因此,不要设置ClientIpAddress(本地PC的ip),而是使用Hostname。
编辑2:
试试这个:
public FTPClient(string userName, string password, string hostName, int port)
{
m_FtpInfo = new Ftp2();
m_FtpInfo.Account = userName;
m_FtpInfo.Hostname = hostName;
m_FtpInfo.Password = password;
//m_FtpInfo.Port = port;
}