System.IO.IOException:身份验证失败,因为远端已关闭传输流

本文关键字:传输 因为 IOException IO 身份验证 失败 System | 更新日期: 2023-09-27 18:07:14

我正在创建一个webservice(在。net 3.5中)来获取基于域名的远程服务器的SSL证书信息,我有一个客户端,这是一个控制台应用程序来调用该服务。目前我有11个域名。我可以获得所有服务器的SSL信息,除了一个。

我的代码是:
    using (TcpClient client = new TcpClient())
    {            
        client.Connect(strDNSEntry, 443);
        SslStream ssl = new SslStream(client.GetStream(), false);
        try
        {
            ssl.AuthenticateAsClient(strDNSEntry);    //Error thrown here
        }
        catch (AuthenticationException e)
        {
            log.Debug(e.Message);
            ssl.Close();
            client.Close();
            return cert;
        }
        catch (Exception e)
        {
            log.Debug(e.Message);
            ssl.Close();
            client.Close();
            return cert;
        }
        cert = new X509Certificate2(ssl.RemoteCertificate);
        ssl.Close();
        client.Close();
        return cert;
    }    

错误是

"[先。IOException] ={"认证失败,因为远端。"}".

当我在SSLStream调试期间检查时,我发现错误为"

"

此操作只允许使用已成功认证的用户上下文"。

这是因为我没有足够的凭据是抛出错误或任何问题与服务?我也试图做远程桌面连接到该服务器,我无法连接。

System.IO.IOException:身份验证失败,因为远端已关闭传输流

也许你可以使用"Windows Communication Foundation" WCF框架,并创建一个服务类,然后使用SSL传输配置正确配置客户端/服务器TCP绑定参数。

如果您尝试这样做,稍后我会给您一个测试用例。