在我的生产环境中,我在同一台计算机上安装了多个 Web 应用程序。这些应用程序访问各种 Web 服务和两个 SQL Server 数据库,这意味着我的 web.config 文件非常大并且充满详细信息。除此之外,我还有 Windows 服务,它们使用相同的 Web 服务并访问不同的数据库,而且我还有包含大量详细信息的大型 app.config 文件。整个解决方案是使用 .NET 3.5 (C#) 开发的。
当我的四个开发团队之一想要部署解决方案某些部分的新版本并且所有配置文件都需要更改时,我的问题就开始了。由于我的 QA 环境与生产环境具有不同的计算机名称,因此我无法对配置文件进行简单的复制,因此我需要手动更改每个配置文件。而且,无论我的同事做了多少次检查(甚至使用检查列表),某些配置都会保持不变,并且解决方案的某些部分会停止。
有没有办法为所有应用程序创建唯一的配置文件?或者,至少将数据库连接字符串和 Web 服务 URL 集中在一个文件中以供所有应用程序使用?
P.S.:我无法更改部署团队,因为他们属于我的客户:(
最佳答案
您可以使用 connectionStrings
部分中的 configSource
属性来包含外部连接字符串文件:
应用程序 web.config
<configuration>
<connectionStrings configSource="connectionStrings.config" />
</configuration>
connectionStrings.config
<connectionStrings>
<add name="connection1" connectionString="..." />
</connectionStrings>
注意:正如 marc_s 在注释中建议的那样,configSource
属性可以在任何配置部分使用。
关于.net - 多个应用程序共享相同的配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1692800/