MSDeploy автоматическое шифрование строк подключения, ключ не найден в словаре
Начиная с Web Deploy 3.5, автоматическое шифрование строк подключения поддерживается с помощью флага: –EnableRule:EncryptWebConfig
, Тем не менее, после запуска с:
"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -source:package='C:\[...]\MyApp.WebDeployPackage.zip' -dest:auto,includeAcls="False" -verb:sync -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -setParamFile:"C:\[...]\MyApp.SetParameters.xml" -EnableRule:EncryptWebConfig -verbose
Я получил:
Error Code: ERROR_FAILED_TO_ENCRYPT_WEB_CONFIG
More Information: Failed to encrypt destination web.config: C:\[...]\Web.config.
Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FAILED_TO_ENCRYPT_WEB_CONFIG.
Error: The given key was not present in the dictionary.
Ссылка " Узнать больше" указывает на устаревшую документацию, и я не могу найти какую-либо информацию в Интернете.
Я подозреваю, что инструмент использует aspnet_regiis за кулисами, но я не уверен. Да, я запускаю вышеупомянутое с полными правами администратора.
5 ответов
У меня была такая же проблема, но это было не из-за вложенного web.config
файл. Оказывается, по какой-то причине мой пользователь развертывания не смог получить доступ к контейнеру ключей (в журналах ошибок службы веб-развертывания было выдано исключение System.Configuration.ConfigurationErrorsException: The RSA key container could not be opened.
).
Я в конечном итоге с помощью этой команды: aspnet_regiis -pa "NetFrameworkConfigurationKey" "<MYUSER>"
дать <MYUSER>
необходимый доступ.
У меня возникла та же проблема, мне потребовалось некоторое время, чтобы найти исправление - удаление Web Deploy (через Установка и удаление программ) и повторная установка (через Установщик веб-платформы) сделали свое дело.
Чтобы другим было проще читать реальные ошибки - они записываются в журналы системных событий, вам нужно перейти вниз по дереву и развернуть приложения и перейти к Web Deploy.
Установка web deploy 3.6 на сервере с установленной веб-платформы исправила мою проблему
У меня была точно такая же проблема: удаление Web Deploy 3.5 (с помощью «Установки и удаления программ»), перезапуск компьютера, а затем переустановка Web Deploy 3.6 (с помощью установщика веб-платформы Microsoft) устранила эту проблему.
Обратите внимание на обновление версии с 3.5 до 3.6.
Я получил ту же проблему из-за того, что вложенный web.config
файлы.
Это похоже на ошибку в EncryptWebConfig
править.
Вы можете обойти эту проблему, если вы можете справиться только с рутом web.config
,