c# - asp.net MSDeployEnableWebConfigEncryptRule 无法加密 web.config

标签 c# asp.net asp.net-mvc asp.net-mvc-4

我已经添加了 <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/

相关文章:

具有定时器控制的线程池操作的 C# WinService

c# - 我如何在表单上从 iOS 和 Android 打开 UIViewController

asp.net - 登录尝试 5 次失败后阻止用户 IP?

c# - 为什么我的 SQL 表中会出现@firstname 和@lastname?

javascript - ASP.NET 中的 ExtJS 和 jQuery

c# - 硬件按钮 ONBackPressed 在 Windows Phone 8.1 中无法正常工作

c# - 找出列表中的重复值

c# - 最小化窗口时 Bootstrap 文本框宽度和对齐方式发生变化

html - 无法将 CSS 级联到输入控件,但能够在 Razor 的 DOM 中用于其他 HTML

c# - 安全异常