我已将<MSDeployEnableWebConfigEncryptRule>true</MSDeployEnableWebConfigEncryptRule>
添加到.pubxml文件以加密Web配置文件。但是,在发布时,我收到以下错误。我不知道web.config文件中是否需要额外的设置,而不是在.pubxml中插入<MSDeployEnableWebConfigEncryptRule>true</MSDeployEnableWebConfigEncryptRule>
错误: Web部署任务失败。(无法加密目标web.config。请访问:http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FAILED_TO_ENCRYPT_WEB_CONFIG了解详情。)
注意:#ERROR_FAILED_TO_ENCRYPT_WEB_CONFIG不会出现在给定链接的任何位置。
我怎么能解决这个错误? (注意:我不希望在发布之前在本地预加密web.config文件)
答案 0 :(得分:2)
问题似乎是MSDeployEnableWebConfigEncryptRule不适用于具有多个web.config文件的MVC项目。通常,MVC项目具有Views / Web.Config文件。这似乎是MSDeploy的一个错误 我的解决方法是使用post deployment deployhell脚本在目标服务器上执行相同的命令。见http://www.iis.net/learn/publish/using-web-deploy/web-deploy-powershell-cmdlets
Powershell脚本示例:
Add-PSSnapin WDeploySnapin3.0
$cmd = '%windir%\Microsoft.NET\Framework\v4.0.30319\ASPNET_REGIIS.exe -{0} {1} "{2}"' -f 'pef', 'connectionStrings', $destinationFolder
New-WDPublishSettings -UserId $UserName -Password $Password -ComputerName $destination -AllowUntrusted -FileName server.publishsettings -AgentType MSDepSvc -Site $Website
Invoke-WDCommand -Command $cmd -DestinationPublishSettings server -Verbose
答案 1 :(得分:1)
我也得到了同样的信息。 我查看了事件查看器中的Web部署日志&gt; Microsoft Web Deploy。它给我的例外是:
ERROR_FAILED_TO_ENCRYPT_WEB_CONFIG Microsoft.Web.Deployment.DeploymentDetailedClientServerException:无法加密目标web.config:....了解详情:http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FAILED_TO_ENCRYPT_WEB_CONFIG。 ---&GT; System.Security.Cryptography.CryptographicException:对象已存在。
谷歌搜索这导致我从#34; Just TFS&#34;:Release Management Agent not connecting
回答其中说&#34;部署者用户(\)无权访问加密存储。在安装部署代理的服务器上,导航到此文件夹%ALLUSERSPROFILE%\ Application Data \ Microsoft \ Crypto \ RSA \ MachineKeys并授予对\的读/写访问权限。 - TFS 9月3日和14日12:08&#34;
所以我试图将我的MS Deployer用户帐户读/写到该MachineKeys文件夹,但它拒绝我这样做。我最终添加了部署用户帐户作为本地管理员,并且这样做了。
能够使用它成功加密web.config文件到服务器。