SSL とクライアント証明書を使用してブラウザ外の Silverlight 4 アプリから IIS 7.5 (Windows 7 64 ビット) を呼び出すと、IIS 7.5 が失敗し、"The I/O operation hasスレッドの終了またはアプリケーションの要求により中止されました。(0x800703e3)". 要求は IIS に送信されます。失敗したリクエスト トレースのサンプルを次に示します。
スレッドの終了またはアプリケーションの要求により、I/O 操作が中止されました。(0x800703e3) http://www.slipjig.org/IISError.gif
クライアント HTTP スタックはクライアント証明書をサポートしていないため、ブラウザの HTTP スタックを使用しています。サーバーにアクセスしようとしているクライアント コードは、Prism モジュール ローダーです。アプリをブラウザー外で実行してもクライアント証明書を無視する場合、またはアプリケーションをブラウザー内で実行してもクライアント証明書が必要な場合でも、正常に動作します。この 2 つの組み合わせが問題を引き起こしているようです。
より多くの情報を収集するために、次のことを試しました。
- Fiddler を使用して、失敗した要求を表示しました。Fiddler が実行されている場合は機能します (おそらく、Fiddler がクライアント証明書を別の方法で処理しているためでしょうか?)。
- モジュール .xaps を提供する .aspx Web フォームを作成しました。
- HTTPModule を作成して、リクエストが失敗する前に傍受できるかどうかを確認しました。
- パケット スニファーを使用して、クライアント証明書が正しく送信されているかどうかを確認しました。
Fiddler の機能は興味深いものですが、上記のいずれからも、トレース ファイルで確認できる以上の有益な情報は得られませんでした。
何か案は?前もって感謝します!マイク