Я занимаюсь установкой новых веб-серверов с одного из них (расширение фермы). Это серверы Windows 2008 R2 (IIS 7.5). Часть процесса копирования applicationHost.config с одного компьютера на новый заключается в том, что ключи RSA также необходимо скопировать на этот компьютер; в противном случае могут возникнуть проблемы с пулами приложений, особенно если вы используете пользователя домена в качестве пользовательского удостоверения [пула].
На ферме, которую я моделирую, я использую следующие команды для экспорта ключей .NET v4:
aspnet_regiis.exe -px "iisConfigurationKey" "c:\temp\iisConfigurationKey.xml" -pri
aspnet_regiis.exe -px "iisWasKey" "c:\temp\iisWasKey.xml" -pri
Когда я запускаю любую из этих команд, я получаю сообщение об ошибке "Контейнер ключей RSA не найден". Я пробовал это как из .NET v2 и v4, так и из Framework и Framework64 с одинаковыми результатами.
Есть ли способ определить, где хранятся ключи на этой машине, чтобы передать их? Я немного застрял, пока не смогу сделать это и не смогу расшифровать данные в applicationHost.config и снова запустить пулы приложений.
Думаю, мой другой вопрос: есть ли способ сбросить ключи на новом компьютере (или сбросить файл applicationHost.config), чтобы я мог установить новый пользовательский идентификатор в пуле приложений?
Убедитесь, что при открытии окна cmd вы делаете это как Администратор.
Команда aspnet_iisreg по-прежнему будет выполняться без прав администратора, но вы не сможете получить доступ к контейнеру ключей.
Сообщение "Контейнер ключей RSA не найден"также будет отображаться, если у вас нет доступа к контейнеру.
Как только я открыл консоль cmd от имени администратора (щелкните правой кнопкой мыши «Запуск от имени администратора»), команды в вопросе работали должным образом.