WinRT(Windows8リリースプレビュー)に取り組んでいます。私はWebアプリケーション(実際には、より単純なXMPPクライアント)を持っています。
私は主にStreamSocketクラスを使用してJabberサーバーに接続します。良いスタートを切ることができましたが、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();
}
ヒントを教えてください。ありがとうございました。