我已经添加了 <MSDeployEnableWebConfigEncryptRule>true</MSDeployEnableWebConfigEncryptRule>
到 .pubxml 文件以加密 Web 配置文件。但是,在发布时,出现以下错误。除了插入 <MSDeployEnableWebConfigEncryptRule>true</MSDeployEnableWebConfigEncryptRule>
之外,我不知道 web.config 文件中是否需要额外的设置在 .pubxml 中
错误: Web 部署任务失败。(无法加密目标 web.config。了解更多信息:http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FAILED_TO_ENCRYPT_WEB_CONFIG。)
注意:#ERROR_FAILED_TO_ENCRYPT_WEB_CONFIG 不会出现在给定链接的任何位置。
我该如何解决这个错误? (注意:我不希望在发布之前在本地预加密 web.config 文件)
最佳答案
问题似乎是 MSDeployEnableWebConfigEncryptRule 不适用于具有多个 web.config 文件的 MVC 项目。通常 MVC 项目有 Views/Web.Config 文件。这似乎是 MSDeploy 的错误。
我的解决方法是让部署后的 powershell 脚本在目标服务器上执行相同的命令。参见 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
关于c# - asp.net MSDeployEnableWebConfigEncryptRule 无法加密 web.config,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28406561/