我在C#工作,我尝试在FTP中发送文件。有我的代码:
using (WebClient client = new WebClient())
{
try
{
Uri address = new Uri($"ftp://{FTP_address}:{FTP_port}/{Path.GetFileName(file.FullName)}");
byte[] rawResponse = client.UploadFile(address, "STOR", file.FullName);
string response = System.Text.Encoding.ASCII.GetString(rawResponse);
}
catch (Exception ex)
{
EventLog.logException(null, ex);
}
}
有一个例外。我将FTP_address定义为' XX.XX.XX.XX'和#39; YYYYY'。在我的日志中,有:
System.Net信息:0:[8576] FtpControlStream#39451090 - 从AA.AA.AA.AA创建连接:BBBBB到XX.XX.XX.XX:YYYYY。
System.Net信息:0:[8576]将FtpWebRequest#25342185与。关联 FtpControlStream#39451090
System.Net信息:0:[8576] FtpControlStream#39451090 - 收到回复[220-FileZilla Server 0.9.60 beta 220-Tim Kosse撰写(tim.kosse@filezilla-project.org)220请访问{{ 3}}
[...]
System.Net.Sockets错误:0:[8576]套接字#19515494 :: UpdateStatusAfterSocketError() - ConnectionRefused
System.Net.Sockets错误:0:[8576] Socket中的异常#19515494 :: Connect - 无法建立连接,因为目标计算机主动拒绝它XX.XX.XX.XX:ZZZZZ。
FTP上的防火墙只允许端口YYYYY。我的请求定义为XX.XX.XX.XX: YYYYY ,但在错误消息中,地址为XX.XX.XX.XX: ZZZZZ 。虽然港口确实发生了变化?我怎么能确定要求好的端口?