2013-04-04 16 views
5

Sto provando a connettermi a un server tramite un client SslStream/Tcp. Ogni volta che ottengo viene visualizzata un'eccezione: Ricevuto un EOF imprevisto o 0 byte dal flusso di trasporto nella riga AuthenticateAsClient.SslStream TcpClient: ha ricevuto un EOF imprevisto o 0 byte dal flusso di trasporto

ho attivato la registrazione Trace e sto ottenendo i seguenti due errori nei registri:

System.Net Informazioni: 0:. [12260] SecureChannel # 66.702.757 :: ctor (hostname = xxx.xx.xx .xxx, # clientCertificates = 0, encryptionPolicy = RequireEncryption)

Informazioni su System.Net: 0: [12260] SecureChannel # 66702757 - A sinistra con 0 certificati client tra cui scegliere.

Qualcuno potrebbe darmi qualche consiglio su come risolvere questo? Non sono sicuro del motivo, ma sta lanciando la presa esterna se questo fa alcuna differenza.

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; 
} 

risposta

2

La mia ipotesi è che il server richieda un certificato client.

Problemi correlati