MSDeploy连接字符串的自动加密,在字典中找不到密钥

问题描述 投票:8回答:4

由于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.

Learn more-link指向过时的文档,我似乎无法在线找到任何信息。

我怀疑该工具在幕后使用aspnet_regiis,但我不确定。是的,我正在使用完全管理员权限运行上述内容。

asp.net encryption web-config msdeploy aspnet-regiis.exe
4个回答
1
投票

我有同样的问题,但它不是由于嵌套的web.config文件。原因是我的部署用户无法访问密钥容器(在Web部署服务错误日志中,抛出的异常是System.Configuration.ConfigurationErrorsException: The RSA key container could not be opened.)。

我最终使用这个命令:aspnet_regiis -pa "NetFrameworkConfigurationKey" "<MYUSER>"<MYUSER>必要的访问权限。


1
投票

我遇到了同样的问题,花了一些时间找出修复程序 - 卸载Web Deploy(通过添加/删除程序)并再次安装(通过Web Platform Installer)就可以了。

为了让其他人更容易阅读实际错误 - 它们记录在系统事件日志中,您需要向下导航树并展开应用程序并向下扩展到Web部署。


0
投票

由于嵌套了web.config文件,我遇到了同样的问题。

这似乎是EncryptWebConfig规则中的一个错误。

如果您只使用root web.config进行管理,则可以解决此问题。


0
投票

从Web平台安装的服务器上安装web部署3.6修复了我的问题

© www.soinside.com 2019 - 2024. All rights reserved.