2014-11-01 5 views
1

Я запускаю свою службу Windows на Ubuntu 14 с моно-сервисом.Mono Service Exception - Ошибка аутентификации или дешифрования

Когда моя служба пытается соединиться с подключением SSL, он бросает следующее исключение:

The authentication or decryption has failed. 
at Mono.Security.Protocol.Tls.SslStreamBase.AsyncHandshakeCallback (IAsyncResult asyncResult) [0x00000] in <filename unknown>:0 

Я попытался решения из следующих постов и пытались игнорировать исключения, но ни один из них не были полезны в моем случай:

Mono https webrequest fails with "The authentication or decryption has failed"

c# - "The authentication or decryption has failed." error while using twitterizer in mono

The authentication or decryption has failed.

authentication or decryption has failed when sending mail to GMail using SSL

EDIT: Это мой код подключения:

ServicePointManager.ServerCertificateValidationCallback += CertificateValidationCallBack; 
csGlobal.m_tcp_client = new TcpClient(csGlobal.m_hostname, csGlobal.m_port); 

var ssl_stream = new SslStream(csGlobal.m_tcp_client.GetStream(), false, (sender, certificate, chain, ssl_policy_errors) => ssl_policy_errors == SslPolicyErrors.None); 

var ssl_reader = new StreamReader(csGlobal.m_tcp_client.GetStream()); 
ssl_stream.AuthenticateAsClient(csGlobal.m_hostname); 
ssl_stream.ReadTimeout = (int)csGlobal.READ_TIMEOUT.TotalMilliseconds; 

csGlobal.m_ssl_stream = ssl_stream; 

csGlobal является Global Class, который содержит необходимые переменные.

Я не могу подключиться к серверу. Но когда я запускаю этот сервер на своей Windows, он работает отлично. Предполагается отправить и получить сообщение XML в виде байтов.

Что вы предлагаете?

ответ

1

Попробуйте заменить эту строку:

var ssl_stream = new SslStream(csGlobal.m_tcp_client.GetStream(), false, (sender, certificate, chain, ssl_policy_errors) => ssl_policy_errors == SslPolicyErrors.None); 

с этим:

var ssl_stream = new SslStream(csGlobal.m_tcp_client.GetStream());