C# ConnectionString管理对于一台服务器上的多个项目,我是否应该为代码创建自己的ConnectionString提供程序

C# ConnectionString管理对于一台服务器上的多个项目,我是否应该为代码创建自己的ConnectionString提供程序,c#,.net,connection-string,machine.config,C#,.net,Connection String,Machine.config,我在一台Windows服务器上有大约10个不同的.NET项目,大部分是.NET 4.0,但也有一些.NET 2.0 其中一些项目是asp.net,一些是后台实用程序/服务 这些项目与我们基础设施中的100多个不同数据库交互。他们使用的连接字符串一个月至少会更改几次 这里的问题是,忘记在其中一个项目中放置ConnectionString可能会导致很多问题,并且许多不同的程序员会一直将新项目/更新部署到服务器上 我对解决方案的新尝试是在所有项目中重写System.ConfigurationManag

我在一台Windows服务器上有大约10个不同的.NET项目,大部分是.NET 4.0,但也有一些.NET 2.0

其中一些项目是asp.net,一些是后台实用程序/服务

这些项目与我们基础设施中的100多个不同数据库交互。他们使用的连接字符串一个月至少会更改几次

这里的问题是,忘记在其中一个项目中放置ConnectionString可能会导致很多问题,并且许多不同的程序员会一直将新项目/更新部署到服务器上

我对解决方案的新尝试是在所有项目中重写System.ConfigurationManager类,并用我自己的实现替换它,该实现从我可以维护的共享配置文件中读取。然后我只需重新编译每个项目一次并部署它

我也可以尝试在machine.config文件中维护所有项目之间共享的连接字符串,但我必须为至少三个项目使用的每个.NET framework版本维护连接字符串,并且在该文件中出错似乎是危险的

有没有人建议采取哪种方式


谢谢。

在machine.config和另一个解决方案之间有。这里的限制是:它仅适用于sql server。

除了machine.config之外,您还可以创建。您不需要开发任何新内容,只需将共享设置放在此文件中,并在特定的配置文件中引用即可

希望这有帮助


由于链接已经失效,这里有几个例子

要从外部文件完全加载节,请执行以下操作:

<connectionStrings configSource="ConnectionStrings.config" />

要从外部文件中补充节(+节本身中的内容),请执行以下操作:


...

我正试图将此更改的影响限制在检索连接字符串的位置,并且看起来按照您的方式执行此操作将涉及对数据库连接在代码中建立方式的其他更改。除SQL Server之外,我还有其他几种数据库类型。不管怎样,谢谢。我以前在web.config文件中尝试过这个方法,它似乎将外部配置文件的使用限制为仅在同一目录或子目录中找到的文件,除非我弄错了。不,请查看我提供的链接。您可以有一个目录,例如C:\OneConfigToRuleThemAll\TheOne.config,其余的可以在wwwroot或任何地方。谢谢!这看起来正是我需要控制的。链接已断开..:(
<appSettings file="FileService.config">
...
</appSettings>