Контейнер ключа RSA не может быть открыт - PullRequest
15 голосов
/ 27 мая 2010

Я занимаюсь разработкой сайта ASP.NET на старой машине под управлением XP home. Недавно я получил новый ПК с Win 7 и переместил все файлы моего проекта. Когда я пытаюсь запустить проект, я получаю следующее сообщение об ошибке:

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

Я понял, что зашифровал части моего файла web.config с помощью 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

Я не могу работать над проектом, пока это не исправлено, поэтому любая помощь очень ценится. Спасибо!

1 Ответ

28 голосов
/ 27 мая 2010

Если у вас все еще есть доступ к старому компьютеру, вы всегда можете расшифровать раздел конфигурации на этом компьютере, а затем скопировать незашифрованный файл конфигурации на новый компьютер (и, при необходимости, повторно зашифровать файл на старом компьютере). .

В 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...