Próbuję połączyć się z serwerem za pośrednictwem klienta SslStream/Tcp. Za każdym razem otrzymuję wyjątek stwierdzający: Otrzymano nieoczekiwany EOF lub 0 bajtów ze strumienia transportowego w wierszu AuthenticateAsClient.SslStream TcpClient - Otrzymano nieoczekiwany EOF lub 0 bajtów ze strumienia transportowego
mam włączone rejestrowanie śladowych i otrzymuję następujące dwa błędy w dziennikach:
System.Net informacji: 0. [12260] SecureChannel # 66702757 :: konstruktor (hostname = xxx.xx.xx .xxx, # clientCertificates = 0, encryptionPolicy = RequireEncryption)
Informacje System.Net: 0: [12260] SecureChannel # 66702757 - Pozostały z 0 certyfikatami klienta do wyboru.
Czy ktoś mógłby udzielić mi porady, jak rozwiązać ten problem? Nie wiem dlaczego, ale rzuca się na zewnętrzny haczyk, jeśli to robi jakąkolwiek różnicę.
try
{
TcpClient client = new TcpClient(_host, _port);
// _stream = client.GetStream();
_stream = new SslStream(client.GetStream(), false, ValidateServerCertificate, null);
_sslReader = new StreamReader(client.GetStream());
try
{
_stream.AuthenticateAsClient(_host);
}
catch (AuthenticationException e)
{
client.Close();
return;
}
HandleConnect();
}
catch (Exception e)
{
_logger.Error(e.BuildExceptionInfo());
}
public bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
if (sslPolicyErrors == SslPolicyErrors.None || sslPolicyErrors == SslPolicyErrors.RemoteCertificateNameMismatch)
return true;
return false;
}