gpt4 book ai didi

c# - 如何防止 web.config 在站点更新时使用 webdeploy 被覆盖

转载 作者:太空狗 更新时间:2023-10-29 22:26:49 24 4
gpt4 key购买 nike

我有一个 c# 网站,我一直在通过 iis7/webdeploy 进行部署,而且效果很好。问题是当我更新站点时,web.config 文件被覆盖。该文件包含数据库连接和一些特定于其站点的其他设置。自发布以来,我一直在通过登录更新他们的站点,复制 web.config,重新运行导入,然后重新复制 web.config。我有几次因为忘记这样做而搞砸了自己,这会导致我做很多额外的工作。但是,现在我正在努力将 Web 界面作为我的自动部署的一部分,因此我需要弄清楚为什么它会覆盖站点的当前配置。

有谁知道为什么 web.config 被覆盖和/或如何修复它以使其不再这样做?

谢谢! 斯科特

最佳答案

使用网络部署时,您有两个选择:

  • 参数化
  • Web.config 转换

使用参数化时,您可以指定在部署包期间可以修改哪些设置。例如,您可以为连接字符串、WCF 配置或应用程序设置创建参数。当管理员现在部署您的应用程序时,他们可以修改当前安装的所有设置。当您将一个包部署到多个环境时,此方法很有用。使用像 XmlPoke 这样的东西您可以完全自动化此过程。

有关如何使用参数的完整说明,请参阅:Reference for the Web Application Package .

Web.config 转换是在编译时完成的。通过创建多个配置,您可以使用 XSLT 更改 web.config 文件中的值。这些更改会在您构建包时应用。 SlowCheetah是一个很棒的工具,可以帮助您测试您的转换。通过创建特定配置(例如:暂存、测试、生产),您可以在部署管道中使用这些配置来正确配置所有设置。

有关如何使用 web.config 转换的更多信息,请参阅:Web.config Transformation Syntax for Web Project Deployment Using Visual Studio

参数化给你更多的自由,但也更复杂。 Web.config 转换易于使用,并且可以在您预先知道要部署到的环境时使用。

关于c# - 如何防止 web.config 在站点更新时使用 webdeploy 被覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17880665/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com