You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#上传文件至FTP服务器时报System.Net.WebException无法连接远程服务器如何解决

问题排查步骤
  • 核对FTP连接凭据:首先确认Hostinger后台给出的FTP地址、用户名、密码完全正确,你当前代码中使用的zikria并非Hostinger默认的FTP用户名格式,Hostinger的FTP用户名通常为路径中显示的u323320256这类u开头的字符串,且FTP地址建议填写ftp://razidawakhana.com而非直接写IP,避免IP变更导致连接失败。
  • 验证网络连通性:使用FileZilla等第三方FTP工具,填入相同的地址、端口、用户名、密码测试连接:如果工具也无法连接,说明是网络/权限问题,检查本地防火墙是否放行21端口、当前网络是否封禁FTP协议、Hostinger后台是否将你的当前IP加入FTP访问白名单;如果工具可以连接,说明是代码配置问题。
  • 确认目标路径存在:先手动在Hostinger的文件管理器中确认public_html/PDPix文件夹已创建,FTP不会自动创建不存在的父级文件夹,路径不存在也会触发连接/操作报错。
代码修复方案

你当前代码存在3个直接导致连接失败的配置问题:

  1. 未开启被动模式:FtpWebRequest默认使用主动模式,而目前绝大多数商用FTP服务器(包括Hostinger)仅支持被动模式连接,需主动添加配置开启。
  2. 二进制文件读取逻辑错误:使用StreamReader按UTF8编码读取所有类型文件,会导致图片、音频等二进制文件损坏,同时长度计算错误触发传输失败。
  3. 重复赋值冗余,且未正确释放资源,容易引发偶发连接异常。

修正后的完整代码如下:

//FTP Upload
string ftpurl = "ftp://razidawakhana.com/home/u323320256/domains/razidawakhana.com/public_html";
string ftpusername = "u323320256"; // 替换为Hostinger后台给出的实际FTP用户名
string ftppassword = "Yamankatita1@"; // 替换为Hostinger后台给出的实际FTP密码

string PureFileName = new FileInfo(file_name).Name;
string uploadUrl = String.Format("{0}/{1}/{2}", ftpurl, "PDPix", PureFileName);
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(uploadUrl);
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(ftpusername, ftppassword);
request.Proxy = null;
request.KeepAlive = true;
request.UseBinary = true;
request.UsePassive = true; // 新增:开启被动模式,解决大部分连接失败问题
request.ContentLength = new FileInfo(_mediaFile.Path).Length;

// 直接读取二进制流,避免文件损坏
byte[] fileContents = File.ReadAllBytes(_mediaFile.Path);

using (Stream requestStream = request.GetRequestStream())
{
    requestStream.Write(fileContents, 0, fileContents.Length);
}

using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())
{
    Console.WriteLine("Upload File Complete, status {0}", response.StatusDescription);
}

内容的提问来源于stack exchange,提问作者Zikria Rasul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 00:45:04