1

正如标题所述,我可以通过 FileZilla Client 从我的服务器连接到另一台机器,但我不能通过代码(.Net - FTPWebRequest)

我知道代码很好,因为它可以在另一台机器上运行。我遇到问题的特定机器位于 NAT 后面,但 SA 已为来自我们尝试与之通信的主机的流量打开了所有端口。

任何建议 - 我错过了一些明显的东西吗?

我从尝试的连接中得到的异常是:

“无法从传输连接中读取数据:连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应。”

而且,我们尝试连接的机器的日志显示:

2010 年 7 月 26 日下午 12:40:23 -(未登录)(xx.xx.xxx.xxx)> 已连接,正在发送欢迎消息...

7/26/2010 12:40:23 PM -(未登录)(xx.xx.xxx.xxx)> 220-FileZilla 服务器版本 0.9.32 beta

2010 年 7 月 26 日下午 12:40:23 -(未登录)(xx.xx.xxx.xxx)> 220 ftp.xxxxxxxxxx.com

2010 年 7 月 26 日下午 12:40:23 -(未登录)(xx.xx.xxx.xxx)> AUTH TLS

7/26/2010 12:40:24 PM -(未登录)(xx.xx.xxx.xxx)> 234 使用身份验证类型 TLS

2010 年 7 月 26 日下午 12:41:24 - (未登录)(xx.xx.xxx.xxx)> 421 已超过登录时间。关闭控制连接。

2010 年 7 月 26 日下午 12:41:24 -(未登录)(xx.xx.xxx.xxx)> 已断开连接。

4

3 回答 3

1

抱歉,我忘了带着我的解决方案回到这里 - 这是隐式与显式 SSL。我对 FileZilla 用例使用了隐式,但对 FTPWebRequest 使用了显式。不幸的是,FTPWebRequest 不支持隐式并且 NAT 在显式方面存在问题。

长话短说,我们使用了一个名为Alex FTPS 客户端的 FTPS 控件,该控件易于用于隐式或显式 ssl,易于设置,并且可以完美运行。

于 2010-08-26T03:08:59.910 回答
0

可能是TLS/SSL协商时服务器发送的证书有问题,操作系统不接受,等等。尝试运行 Wireshark 来检查,客户端和服务器之间实际发送了哪些数据。

于 2010-08-24T09:19:55.490 回答
0
Dim auth = New System.Net.NetworkCredential(userName, password)
sRet = ftps.Connect(sAddress, 990, auth, ESSLSupportMode.Implicit, AddressOf UF.ValidateServerCertificate, Nothing, 0, 0, 0, 600000, True
于 2014-12-08T01:46:46.493 回答