首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用.NET SslStream的FTPS服务器

使用.NET SslStream的FTPS服务器
EN

Stack Overflow用户
提问于 2013-04-02 16:24:34
回答 4查看 2.8K关注 0票数 6

我正在用C#开发一个FTP服务器,我刚刚用SslStream类实现了FTPS显式模式的功能,一切都很顺利。

我在使用fileZilla > 3.0.11作为客户端时遇到问题。我用谷歌搜索了一下,发现sslstream实现似乎没有正确关闭连接。(不发送close_notify警报)。使用WinScp、SmartFTP和lftp,一切都可以正常工作。

有什么想法或者其他的SSL库吗?

或者使用某种方式对close_notify警报进行硬编码并发送?

具体的代码示例会很棒!

创建sslStream:

代码语言:javascript
复制
_sslStream = new SslStream(socket.GetStream());      
var _cert = new X509Certificate2(certPath,pass);    
_sslStream.AuthenticateAsServer(_cert);

关闭连接:

代码语言:javascript
复制
_sslStream.Close();
socket.Close();
_sslStream = null;
socket = null;

FileZilla 3.6.0.2错误日志:

代码语言:javascript
复制
Response:   150 Opening data connection for LIST
Trace:  CFtpControlSocket::TransferParseResponse()
Trace:    code = 1
Trace:    state = 4
Trace:  CFtpControlSocket::SendNextCommand()
Trace:  CFtpControlSocket::TransferSend()
Trace:    state = 5
Trace:  CTlsSocket::OnRead()
Trace:  CTlsSocket::ContinueHandshake()
Trace:  TLS Handshake successful
Trace:  TLS Session resumed
Trace:  Cipher: AES-128-CBC, MAC: SHA1
Trace:  CTransferSocket::OnConnect
Trace:  CTransferSocket::OnReceive(), m_transferMode=0
Trace:  CTlsSocket::Failure(-110, 0)
Error:  GnuTLS error -110 in gnutls_record_recv: The TLS connection was non-properly terminated.
Error:  Could not read from transfer socket: ECONNABORTED - Connection aborted
Trace:  CTransferSocket::TransferEnd(3)
Trace:  CFtpControlSocket::TransferEnd()
Trace:  CTlsSocket::OnRead()
Trace:  CFtpControlSocket::OnReceive()
Response:   226 LIST successful.
EN

回答 4

Stack Overflow用户

发布于 2013-04-02 16:54:41

我认为,你有真正的理由重新发明轮子。已经有一些库在C#/.NET中实现了FTPS服务器,比如SecureBlackbox (然而,它是商业的)。

票数 5
EN

Stack Overflow用户

发布于 2014-03-25 14:30:30

请看一下我在here上发布的解决方法。如果我们所有人都能让这个变通方法变得更好,那就太好了。

票数 3
EN

Stack Overflow用户

发布于 2013-04-09 03:03:29

如果在关闭套接字之前对其调用Shutdown,会发生什么情况?

代码语言:javascript
复制
socket.Shutdown(SocketShutdown.Both);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15759355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档