WCF サービスを作成し、.NET 4.5 の新しい ID パイプラインを使用して保護し、ADFS 2.0 サーバーによって発行されたトークンによって提供される承認を取得しました。サービスは、自己署名証明書を持つ SSL エンドポイントの背後にあります。
Fiddler をアタッチして、サービスの使用に関する最初の例外を解決しようとしました。これには、Fiddler の HTTPS 復号化を有効にし、FiddlerRoot 証明書を電話エミュレーターにインストールする必要がありました。問題を特定し、コードを適切に更新しました。次にサービスを利用しようとしたとき、コードは成功しました。Fiddler を切り離しましたが、ここから混乱が始まります。私は同じ(誤解を招く)例外を受け取り続けました:
The remote server returned an error: NotFound.
おそらくこれは X509 チェーンの検証の問題であると考えて、FiddlerRoot 証明書の場合と同じように、自己署名証明書を電話にインストールしました。私の結果は変わりませんでした。次のことは真実であり、私には意味がありません。
- サービスの説明ページには、エミュレーターの Web ブラウザーを介してエンドポイント アドレスでアクセスできます。
- IIS ログには、例外がスローされたときにサービスに対して行われた要求が含まれていません
- 当然のことながら、WCF トレース ログにも、失敗した呼び出しに関する情報は含まれていません。
この動作は、アプリケーションが物理デバイスにデプロイされたときの動作に対応しています。おそらく Fiddler は、エミュレーターでは利用できないネットワーク パスを利用できるプロキシを作成していると思いましたが、これは一見正しくないように見えます。
問題の原因に関するデバッグのガイダンスまたは推測をいただければ幸いです。