我正在开发 WinRT(Windows8 Release Preview)。我有一个 Web 应用程序(实际上是一个更简单的 XMPP 客户端)。
我主要使用 StreamSocket 类来连接 Jabber Server。它给了我一个好的开始。但是当我尝试升级已经连接的套接字以使用 SSL 时遇到了一个问题。
我使用StreamSocket.UpgradeToSslAsync来实现它。它抛出这样的异常
在意外的时间调用了一个方法。(来自 HRESULT 的异常:0x8000000E)
我不知道为什么会这样。我已经完成了上面链接的所有事情。我已经创建成功连接的套接字。我可以从 Jabber 服务器接收一些 xml 节。这是运行时的图片。![在此处输入图片描述][1]
您可以在新选项卡中看到图片。
当我单击 UpToSSL 按钮时,它会崩溃并抛出上述异常。
这是更简单的版本代码:
// xmpp is my CXMPP client class
private void StartTlsBtn_Click(object sender, RoutedEventArgs e)
{
xmpp.SendXml("<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls' />");
}
// it works fine, and i have got the reponse from server:
// <proceed xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>
// next step i should upgrade my sockey connection to ssl
private void UpSslBtn_Click(object sender, RoutedEventArgs e)
{
xmpp.UpToSsl();
}
async public void UpToSsl()
{
SendEvent.WaitOne();
SendEvent.Reset();
// private StreamSocket ClientSock;
await ClientSock.UpgradeToSslAsync(SocketProtectionLevel.Ssl, ClientSock.Information.RemoteHostName);
isSsl = true;
SendEvent.Set();
}
请给我一些提示。谢谢你。