Исключение соединения с Chilkat в FTP2 в C#
Я получаю следующее сообщение в исключении 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
Я пытаюсь подключиться к FTP-серверу, используя класс Ftp2 chilkat (используя C#), используя метод 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;
}
}
Может кто-нибудь сказать, пожалуйста, где я иду не так?
1 ответ
Решение
Линия m_FtpInfo.ClientIpAddress = hostName;
не требуется Фактический хост для подключения не установлен.
Редактировать:
Страница примера Chilkat устанавливает имя хоста следующим образом:
ftp.Hostname = "ftp.chilkatsoft.com";
Поэтому вместо настройки ClientIpAddress (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;
}