web-dev-qa-db-ja.com

RSAキーコンテナを開くことができませんでした

XPホームを実行している古いマシンでASP.NETサイトを開発してきました。最近新しいWin7 PCを入手し、すべてのプロジェクトファイルを移動しました。プロジェクトを実行しようとすると、次のエラーメッセージが表示されます。

"Failed to decrypt using provider 'MyRsaProtectedConfigurationProvider'. Error message from the provider: The RSA key container could not be opened."

RSA encryptionを使用してweb.configファイルの一部を暗号化したことに気付きました。ここに問題があります。新しいマシンで使用できるように、そのキーを再び機能させる方法がわかりません。古いマシンからキーをエクスポートし、次を使用してインポートしました。

aspnet_regiis -pi "RSAProviderName" "C:\RSA_configkey.xml"

これは正常にインポートされました。次にプロジェクトを実行しましたが、同じエラーメッセージが表示されました。私はそれが許可のことかもしれないと思ったので、私は走りました:

aspnet_regiis -pa "RSAProviderName" "\Desktop" -full

これも成功しましたが、それでもエラーが発生します。読んでみると、「\ Desktop」の代わりに「ASPNET」を使用している人がいます(Desktopは私のマシン名です)。ただし、「ASPNET」を使用しようとすると、次のようになります。

No mapping between account name and security IDs was done. <Exception from HRESULT = 0x80070534

これが修正されるまで私はプロジェクトに取り組むことができないので、どんな助けでも大歓迎です。ありがとう!

16
keyboardP

古いマシンにまだアクセスできる場合は、いつでもそのマシンの構成セクションを復号化してから、暗号化されていない構成ファイルを新しいマシンにコピーできます(必要に応じて、古いマシンでファイルを再暗号化します)。

Windows 7では、デフォルトでIISアプリケーションプールが実行されるアカウントは、ApplicationPoolIdentity[〜#〜] aspnet [〜#〜]とは対照的)権限を付与するには、次のことを試してください。

aspnet_regiis -pa RSAProviderName "IIS APPPOOL\DefaultAppPool" -full

ちなみに、古いマシンから新しいマシンにキーをコピーすることに固執する場合は、エクスポートするときに、秘密キーデータもエクスポートするようにしてください。

aspnet_regiis -px RSAProviderName C:\RSA_configkey.xml -pri

また、オプションで、インポート中にキーデータをエクスポート可能にするには:

aspnet_regiis -pi RSAProviderName C:\RSA_configkey.xml -exp
28
Dave Cluderay

同じ問題に直面していましたが、管理者を使用してcommandprompt/powershellを実行すると問題が解決しました。

2