使用C#,是否有办法区分machine.config中的ConnectionStrings和web.config?我想遍历web.config中的集合,但不是来自machine.config的集合。区分machine.config和web.config中的ConnectionStrings
ASP.NET 3.5,C#
使用C#,是否有办法区分machine.config中的ConnectionStrings和web.config?我想遍历web.config中的集合,但不是来自machine.config的集合。区分machine.config和web.config中的ConnectionStrings
ASP.NET 3.5,C#
尝试代码波纹管或问题LINQ查询发现两者的configs的恭维(差异)。下面yeilds true,如果在索引0连接字符串从机器的配置它也索引0处的连接字符串进行比较,否则未来产生false:
System.Configuration.ConfigurationManager.ConnectionStrings[0].Equals
(System.Configuration.ConfigurationManager.OpenMachineConfiguration()
.ConnectionStrings.ConnectionStrings[0])
在web.config每个配置也可以把在machine.config中。 您可以想到Machine.Config是基类,Web.Config是子类。
所以如果重写Web.Config中的任何设置,你基本上是重写计算机配置设置(或要求应用程序使用的web.config设置)
所以我觉得,如果你写的连接蜇在网站.CONFIG,然后从你的应用程序时,你遍历的ConnectionStrings
ConfigurationManager.ConnectionStrings
您将只能够访问你写在web.config中的连接字符串。
请在web.config connectionstring部分尝试<clear/>
。所以我认为这将清除Machine.config连接字符串。
你试过
Configuration c = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("/");
从MSDN,也看System.Web.Configuration命名空间。
How to: Read Connection strings from the Web.config file
System.Configuration.Configuration rootWebConfig =
System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("/MyWebSiteRoot");
System.Configuration.ConnectionStringSettings connString;
if (rootWebConfig.ConnectionStrings.ConnectionStrings.Count > 0)
{
connString =
rootWebConfig.ConnectionStrings.ConnectionStrings["NorthwindConnectionString"];
if (connString != null)
Console.WriteLine("Northwind connection string = \"{0}\"",
connString.ConnectionString);
else
Console.WriteLine("No Northwind connection string");
}
为了得到localweb.config第一ConnectionString中,使用它:
var ms = System.Configuration.ConfigurationManager.OpenMachineConfiguration();
if (ConfigurationManager.ConnectionStrings.Count > ms.ConnectionStrings.ConnectionStrings.Count)
return ConfigurationManager.ConnectionStrings[ms.ConnectionStrings.ConnectionStrings.Count].ConnectionString;
庵。什么?第一种说法是有道理的,但其余的则没有。 – 2011-01-13 15:43:41
编辑我的答案。如果我的理解错误,请纠正。 – KBBWrite 2011-01-13 16:01:24
这是我已经试图做的。 ConfigurationManager.ConnectionStrings集合包含web.config和machine.config中的连接字符串。 – Jeff 2011-01-13 16:08:18