在共享配置 IIS 中自动部署机器密钥

Automate deploy of Machine Key in a shared config IIS

我正在使用 Azure DevOps 将 ASP.NET 应用程序部署到本地 IIS 服务器。 IIS 服务器正在使用共享配置,因此它们需要自定义计算机密钥设置。

我可以使用 XML 转换在 Web.Config

中添加 machineKey 条目
  <system.web>
    <machineKey decryptionKey="{hex-key value}" validationKey="{hex-key value}"/>
  </system.web>

但我不想在源代码管理中拥有实际的密钥,因此我需要在部署时替换这些值。对于 appsettings 和连接字符串,替换很容易,但是我如何替换 Web.Config 的 System.Web 部分中的值?

How can I substitute values in the System.Web section of the Web.Config?

考虑使用一个扩展名如何 Replace token?为什么我推荐它是因为它可以实现只能在流水线期间更换的需求运行。

另外,它的使用也很方便。只需要在任务中指定 prefixsuffix,然后将它们应用到您的 web.config 文件中。

然后在变量选项卡中指定同名的相应变量。

只有这样,在流水线运行中,任务才能正确找到对应的token,并将值替换进去。

详细步骤可以参考我之前的回答:.