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调试期间检查时,我发现错误为"
"此操作只允许使用已成功认证的用户上下文"。
这是因为我没有足够的凭据是抛出错误或任何问题与服务?我也试图做远程桌面连接到该服务器,我无法连接。
也许你可以使用"Windows Communication Foundation" WCF框架,并创建一个服务类,然后使用SSL传输配置正确配置客户端/服务器TCP绑定参数。
如果您尝试这样做,稍后我会给您一个测试用例。