使用WinSCP .NET在C#中连接SFTP端口2222时超时问题排查
问题排查与解决
核心问题是你的代码未指定SFTP服务的端口2222:
WinSCP .NET组件的SessionOptions默认使用SFTP协议的标准端口22,但目标服务器的SFTP服务运行在2222端口。FileZilla能正常连接是因为你手动配置了该端口,但代码里遗漏了这个关键配置,导致连接请求发送到错误端口,最终超时。
修复步骤
在SFTP协议的配置分支中添加端口设置:
if (_strftpprotocol == "SFTP") { sessionOptions.Protocol = WinSCP.Protocol.Sftp; // 添加这行代码指定端口 sessionOptions.PortNumber = 2222; }
额外检查项
- 确认
_strftpURL仅包含主机名(如fs2.comparethemarket.com),不要附带端口号(比如不要写成fs2.comparethemarket.com:2222),端口必须通过PortNumber属性单独设置。 - 若后续仍有问题,可检查
privatekeyFilePath的拼接逻辑是否正确(但认证错误通常不会直接导致超时,此为次要排查点)。
内容的提问来源于stack exchange,提问作者Rajesh
相关产品推荐
相关产品推荐

