通过程序更新各个站点的Web.config文件

本文关键字:Web config 文件 站点 过程 程序 更新 | 更新日期: 2024-10-23 19:59:44

我正在准备一个单独的工具(web应用程序),使用它我应该能够更改托管在不同web服务器上的各种web应用程序的web.config文件。

我尝试使用WebConfigurationManager。OpenWebConfiguration(字符串),但它只采用相对路径,但如果我将不同web服务器的共享位置放在web.config文件中,它就会失败。

MSDN参考:https://msdn.microsoft.com/en-us/library/ms151456(v=vs.110).aspx

我想,在我的情况下,我将无法使用WebConfigurationManager。OpenWebConfiguration。

唯一的选项是XDocument。

请提出建议。

通过程序更新各个站点的Web.config文件

在过去的项目中,我成功地使用了基本文件和转换文件:https://msdn.microsoft.com/en-us/library/vstudio/dd465318(v=vs.100).aspx.

例如,我们在web.config.base文件中有一个连接字符串,如:

...
<connectionStrings>
    <!-- Connection String Changes will be lost when this file is
         regenerated - Please edit your transform file instead -->
    <add 
        name="MainConnectionString" 
        connectionString="(default connection string)" />

以及web.config.transform文件中的一个条目,看起来像:

<connectionStrings>
<add name="MainConnectionString"
            connectionString="(system-specific connection string)"
            xdt:Transform="Replace"
            xdt:Locator="Match(name)"
                          />

生成应用程序时会重新创建web.config文件,本地转换文件中定义的任何连接字符串都将替换默认字符串。web.config.base文件被提交到我们的版本控制系统,而转换则没有。

因此,开发人员可以有一个转换文件来连接到他们的本地数据库,qa服务器有一个不同的转换文件,demo服务器又有一个不一样的集合,这一切都很简单,因为大多数设置都保存在web.config.base文件中,该文件与存储库一起传递,从一个环境到下一个环境只需要维护连接字符串的更改。