2013-10-28 44 views
8

由于Web Deploy 3.5使用标志–EnableRule:EncryptWebConfig支持连接字符串的自动加密。然而,在与运行它:MSDeploy自动加密连接字符串,在字典中找不到密钥

"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,但我不确定。是的,我使用完全管理权限运行上述操作。

+0

我正在部署到Windows Server 2008,即使使用详细参数,也没有收到任何错误。它只是没有加密连接字符串。部署相同的包到2012年服务器我收到错误。对于部署到2008和IIS 7.5的用户来说,这只是一个参考。 – bkstill

回答

1

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

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

0

我得到了同样的问题,因为嵌套web.config文件。

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

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

+0

通过嵌套'Web.config',你是指根中的一个文件,以及例如在Views-directory中的一个文件? (或其他目录,如果不是ASP.NET MVC。) – cederlof

+0

是的,就是这样! – Stephan

+0

这是问题吗?我正在努力自己找到相同的答案.. – calcazar