Exceção em SslStream.AuthenticateAsClient (a mensagem foi mal formatada)

Eu tenho um problema estranho acontecendo. Eu estou tentando se conectar ao servidor da Apple via TCP / SSL. Estou usando um certificado de cliente fornecido pela Apple para notificações por push. Instalei o certificado no meu servidor (Win2k3) nos certificados Raiz Local Confiável e na pasta Certificados Pessoais Locais.

Agora eu tenho uma biblioteca de classes que lida com essa conexão, quando eu chamo esta biblioteca de classe de um aplicativo de console em execução do servidor funciona perfeitamente bem, mas quando eu chamar essa biblioteca de classe de uma página asp.net ou asmx web service recebo a seguinte exceção.

Uma chamada para o SSPI falhou, veja a exceção interna. A mensagem recebida foi inesperada ou mal formatada.

Este é o meu código:

X509Certificate cert = new X509Certificate(certificateLocation, certificatePassword);                       
X509CertificateCollection certCollection = new X509CertificateCollection(new X509Certificate[1] { cert });
// OPEN the new SSL Stream
SslStream ssl = new SslStream(client.GetStream(), false, new RemoteCertificateValidationCallback(ValidateServerCertificate), null);                       
ssl.AuthenticateAsClient(ipAddress, certCollection, SslProtocols.Default, false);

ssl.AuthenticateAsClient é onde o erro é lançado.

Isso está me deixando louco. Se o aplicativo de console pode se conectar bem, deve haver algum problema com a segurança camada de rede asp.net que está falhando a autenticação ... não tenho certeza, talvez precise adicionar algo ou algum tipo de política de segurança no web.config. Também só para salientar que eu posso conectar bem na minha máquina de desenvolvimento local, tanto com console e site.

Alguém tem alguma ideia?

questionAnswers(4)

yourAnswerToTheQuestion