無法打開 RSA 密鑰容器
我一直在執行 XP home 的舊機器上開發一個 ASP.NET 站點。我最近買了一台新的 Win 7 PC,並把我所有的項目文件都轉移了。當我嘗試執行該項目時,我收到以下錯誤消息:
"Failed to decrypt using provider 'MyRsaProtectedConfigurationProvider'. Error message from the provider: The RSA key container could not be opened."我意識到我使用
RSA encryption. 這就是現在的問題所在。我不確定如何讓該密鑰再次工作,以便我可以在我的新機器上使用它。我從舊機器導出密鑰並使用以下命令導入:
aspnet_regiis -pi "RSAProviderName" "C:\RSA_configkey.xml"這是成功導入的。然後我執行了該項目,但出現了相同的錯誤消息。我想這可能是一個許可的事情,所以我跑了:
aspnet_regiis -pa "RSAProviderName" "\Desktop" -full這也成功了,但我仍然得到錯誤。通過閱讀,我看到人們使用“ASPNET”而不是“\Desktop”(Desktop 是我的機器名稱)。但是,當我嘗試使用“ASPNET”時,我得到:
No mapping between account name and security IDs was done. <Exception from HRESULT = 0x80070534在解決此問題之前,我無法從事該項目,因此非常感謝您的幫助。謝謝!
如果您仍然可以訪問舊機器,您可以隨時解密該機器上的配置部分,然後將未加密的配置文件複製到新機器(如有必要,重新加密舊機器上的文件)。
在 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