开发的时候遇到这样一个问题:
在同一个C#项目中有两个Server,每个Server中有一个web.config配置文件,两个Server公用一个数据库服务类(SqlHelper.cs),在数据库服务类(SqlHelper.cs)中使用这样的语句读取数据库属性:public static readonly string test1= ConfigurationManager.ConnectionStrings["test1"].ConnectionString。
之后在其中一个服务的web.config中新增了一行connectionStrings配置,另一个web.config没有增加,然后测试新增了配置项的这个Server功能,一切正常。
但是在测试另一个Server功能的时候,一调用SqlHelper类就报错。才反应过来是由于在该Server中缺少connectionStrings配置,所以在该Server中也增加一行相同的connectionStrings配置,这才解决问题。
这个问题的原因是ConfigurationManager读取的是对应的Server中的web.config配置,如果多个Server都是用同一个类来操作数据库,那么公用类中ConfigurationManager.ConnectionStrings[""].ConnectionString就必须每个web.config都要有相同Name的配置项。