X.509 認証を使用して保護されたサードパーティの Web サービスを呼び出すコードがあります。
コードを直接呼び出すと(ユニットテストを使用)、問題なく動作します。
デプロイされると、このコードは WCF サービス経由で呼び出されます。WCF サービスを呼び出す 2 番目の単体テストを追加しましたが、サード パーティの Web サービスでメソッドを呼び出すと、このテストは失敗しCryptographicException
、 というメッセージが"Keyset does not exist"
表示されます。
これは、WCF サービスが自分とは別のユーザーを使用してサードパーティの Web サービスを呼び出そうとするためだと推測します。
この問題について、さらに詳しい情報を教えてくれる人はいますか?
ベストアンサー1
これは、IIS ユーザーが証明書の秘密キーにアクセスできないことが原因である可能性が高いです。次の手順に従って設定できます...
- スタート → 実行 → MMC
- ファイル → スナップインの追加/削除
- 証明書スナップインを追加する
- コンピュータアカウントを選択し、次へをクリックします
- ローカルコンピュータ(デフォルト)を選択し、完了をクリックします。
- コンソールルートの左側のパネルで、証明書(ローカルコンピュータ)→個人→証明書に移動します。
- おそらく証明書はここにあります。
- 証明書を右クリック → すべてのタスク → 秘密キーの管理
- ここで秘密鍵の設定を行います。