Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#FTP显式SSL请求从不登录_C#_Ftp_Filezilla_Ftps - Fatal编程技术网

C#FTP显式SSL请求从不登录

C#FTP显式SSL请求从不登录,c#,ftp,filezilla,ftps,C#,Ftp,Filezilla,Ftps,我试图使用C#与FileZilla服务器建立FTPS连接,但C#应用程序从未登录到服务器,服务器关闭连接,我在C#中收到以下错误: 我的C代码是这样的: ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; var req = (FtpWebRequest)WebRequest.Create("ftp://<my IP>:<my port>/"); req.

我试图使用C#与FileZilla服务器建立FTPS连接,但C#应用程序从未登录到服务器,服务器关闭连接,我在C#中收到以下错误:

我的C代码是这样的:

ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
var req = (FtpWebRequest)WebRequest.Create("ftp://<my IP>:<my port>/");
req.UsePassive = true;
req.UseBinary = true;
req.EnableSsl = true;
req.KeepAlive = true;
req.Credentials = new NetworkCredential("Puff", "Daddy");
req.Method = WebRequestMethods.Ftp.ListDirectory;
using (var response = (FtpWebResponse)req.GetResponse())
{
    //Do Something
}
System.Net.Sockets Verbose: 0 : [6424] Socket#54135081::Socket(AddressFamily#23)
System.Net.Sockets Verbose: 0 : [6424] Exiting Socket#54135081::Socket() 
System.Net.Sockets Verbose: 0 : [6424] DNS::TryInternalResolve(<FTP Server IP>)
System.Net.Sockets Verbose: 0 : [6424] Socket#5773521::Connect(<FTP Server IP>:<FTP Port>#-1925092664)
System.Net.Sockets Information: 0 : [6424] Socket#5773521 - Created connection from <local IP>:61169 to <Server IP>:<Server Port>.
System.Net.Sockets Verbose: 0 : [6424] Exiting Socket#5773521::Connect() 
System.Net.Sockets Verbose: 0 : [6424] Socket#54135081::Close()
System.Net.Sockets Verbose: 0 : [6424] Socket#54135081::Dispose()
System.Net.Sockets Verbose: 0 : [6424] Exiting Socket#54135081::Close() 
System.Net Information: 0 : [6424] FtpControlStream#63094882 - Created connection from <Local IP>:61169 to <Server IP>:<Server Port>.
System.Net Information: 0 : [6424] Associating FtpWebRequest#59817589 with FtpControlStream#63094882
System.Net.Sockets Verbose: 0 : [6424] Socket#5773521::Receive()
System.Net.Sockets Verbose: 0 : [6424] Data from Socket#5773521::Receive
System.Net.Sockets Verbose: 0 : [6424] 00000000 :                                                 : 
System.Net.Sockets Verbose: 0 : [6424] Exiting Socket#5773521::Receive()    -> Int32#0
System.Net.Sockets Verbose: 0 : [6424] Socket#5773521::Dispose()
System.Net Information: 0 : [6424] FtpWebRequest#59817589::(Releasing FTP connection#63094882.)
System.Net Error: 0 : [6424] Exception in FtpWebRequest#59817589::GetResponse - The underlying connection was closed: The server committed a protocol violation.
ServicePointManager.ServerCertificateValidationCallback=委托{return true;};
var req=(FtpWebRequest)WebRequest.Create(“ftp://:/”;
req.USEANSACTIVE=真;
req.UseBinary=true;
req.enablesl=true;
req.KeepAlive=true;
请求凭证=新网络凭证(“泡芙”、“爸爸”);
req.Method=WebRequestMethods.Ftp.ListDirectory;
使用(var response=(FtpWebResponse)req.GetResponse())
{
//做点什么
}
尝试连接时,FileZilla服务器接口将打印以下内容:

C#网络日志如下所示:

ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
var req = (FtpWebRequest)WebRequest.Create("ftp://<my IP>:<my port>/");
req.UsePassive = true;
req.UseBinary = true;
req.EnableSsl = true;
req.KeepAlive = true;
req.Credentials = new NetworkCredential("Puff", "Daddy");
req.Method = WebRequestMethods.Ftp.ListDirectory;
using (var response = (FtpWebResponse)req.GetResponse())
{
    //Do Something
}
System.Net.Sockets Verbose: 0 : [6424] Socket#54135081::Socket(AddressFamily#23)
System.Net.Sockets Verbose: 0 : [6424] Exiting Socket#54135081::Socket() 
System.Net.Sockets Verbose: 0 : [6424] DNS::TryInternalResolve(<FTP Server IP>)
System.Net.Sockets Verbose: 0 : [6424] Socket#5773521::Connect(<FTP Server IP>:<FTP Port>#-1925092664)
System.Net.Sockets Information: 0 : [6424] Socket#5773521 - Created connection from <local IP>:61169 to <Server IP>:<Server Port>.
System.Net.Sockets Verbose: 0 : [6424] Exiting Socket#5773521::Connect() 
System.Net.Sockets Verbose: 0 : [6424] Socket#54135081::Close()
System.Net.Sockets Verbose: 0 : [6424] Socket#54135081::Dispose()
System.Net.Sockets Verbose: 0 : [6424] Exiting Socket#54135081::Close() 
System.Net Information: 0 : [6424] FtpControlStream#63094882 - Created connection from <Local IP>:61169 to <Server IP>:<Server Port>.
System.Net Information: 0 : [6424] Associating FtpWebRequest#59817589 with FtpControlStream#63094882
System.Net.Sockets Verbose: 0 : [6424] Socket#5773521::Receive()
System.Net.Sockets Verbose: 0 : [6424] Data from Socket#5773521::Receive
System.Net.Sockets Verbose: 0 : [6424] 00000000 :                                                 : 
System.Net.Sockets Verbose: 0 : [6424] Exiting Socket#5773521::Receive()    -> Int32#0
System.Net.Sockets Verbose: 0 : [6424] Socket#5773521::Dispose()
System.Net Information: 0 : [6424] FtpWebRequest#59817589::(Releasing FTP connection#63094882.)
System.Net Error: 0 : [6424] Exception in FtpWebRequest#59817589::GetResponse - The underlying connection was closed: The server committed a protocol violation.
System.Net.Sockets详细:0:[6424]套接字#54135081::套接字(AddressFamily#23)
System.Net.Socket详细信息:0:[6424]正在退出套接字#54135081::Socket()
System.Net.Sockets详细:0:[6424]DNS::TryInternalResolve()
System.Net.Sockets详细信息:0:[6424]套接字#5773521::Connect(:#-1925092664)
System.Net.Sockets信息:0:[6424]套接字#5773521-已创建从61169到的连接:。
System.Net.Socket详细:0:[6424]正在退出套接字#5773521::Connect()
System.Net.Socket详细:0:[6424]套接字#54135081::Close()
System.Net.Socket详细:0:[6424]套接字#54135081::Dispose()
System.Net.Socket详细:0:[6424]正在退出套接字#54135081::Close()
系统.Net信息:0:[6424]FtpControlStream#63094882-已创建从61169到的连接:。
系统.Net信息:0:[6424]正在将FTPWebreRequest#59817589与FtpControlStream#63094882关联
System.Net.Sockets详细:0:[6424]套接字#5773521::Receive()
System.Net.Socket详细:0:[6424]来自套接字的数据#5773521::接收
System.Net.Sockets详细信息:0:[6424]00000000::
System.Net.Socket详细:0:[6424]正在退出套接字#5773521::Receive()->Int32#0
System.Net.Socket详细:0:[6424]套接字#5773521::Dispose()
系统.Net信息:0:[6424]FtpWebRequest#59817589::(正在释放FTP连接#63094882。)
System.Net错误:0:[6424]FtpWebRequest#59817589::GetResponse中出现异常-基础连接已关闭:服务器违反了协议。
我已经使用FileZilla客户端成功地从同一台PC连接了相同的参数,因此我知道它应该可以工作

我已将这些行添加到App.Config

<system.net>
  <settings>
    <servicePointManager expect100Continue="false"/>
    <httpWebRequest useUnsafeHeaderParsing="true"/>
  </settings>
</system.net>


我也尝试过以.NETFramework3.5和2.0为目标,但结果都是一样的。目前我正在运行.NET4.6。我必须安装服务器证书还是什么?还是代码错了?

在我发布这个问题大约2分钟后,我得到了答案。我会把它留着,以防其他人有这些困难(我有时喜欢接受有人分享我的问题的想法,不管这种可能性有多小)

在FileZilla服务器上的“FTP over TLS设置”对话框中,我配置了一个端口来侦听隐式FTP或TLS(默认值为990)。这是我在FZ客户端FTPS连接中使用的端口。我还试图从C#使用这个端口,但它不起作用,因为连接是显式FTPS。我必须使用常规设置中指定的端口作为侦听端口(默认为21)


实际上,我在发帖之前已经试过了,但是忘记了应用路由器的配置,所以它无法工作,“Der”。

在我发帖大约2分钟后,我找到了答案。我会把它留着,以防其他人有这些困难(我有时喜欢接受有人分享我的问题的想法,不管这种可能性有多小)

在FileZilla服务器上的“FTP over TLS设置”对话框中,我配置了一个端口来侦听隐式FTP或TLS(默认值为990)。这是我在FZ客户端FTPS连接中使用的端口。我还试图从C#使用这个端口,但它不起作用,因为连接是显式FTPS。我必须使用常规设置中指定的端口作为侦听端口(默认为21)


实际上,我在发帖之前已经试过了,但是忘记了应用路由器的配置,所以它不能工作,“Der”。

完全是同一个问题。感谢分享解决方案。完全相同的问题。感谢分享解决方案。