Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 区分machine.config和web.config中的连接字符串_C#_Asp.net_Connection String - Fatal编程技术网

C# 区分machine.config和web.config中的连接字符串

C# 区分machine.config和web.config中的连接字符串,c#,asp.net,connection-string,C#,Asp.net,Connection String,使用C#,是否有办法区分machine.config和web.config中的连接字符串?我希望迭代web.config中的集合,而不是machine.config中的集合 ASP.NET 3.5,C#Web.Config中的每个配置也可以放在machine.Config中。 您可以认为Machine.Config是基类,Web.Config是子类 因此,如果覆盖Web.Config中的任何设置,基本上就是覆盖机器配置设置(或要求应用程序使用Web.Config设置) 因此,我认为如果您在Web

使用C#,是否有办法区分machine.config和web.config中的连接字符串?我希望迭代web.config中的集合,而不是machine.config中的集合


ASP.NET 3.5,C#

Web.Config中的每个配置也可以放在machine.Config中。 您可以认为Machine.Config是基类,Web.Config是子类

因此,如果覆盖Web.Config中的任何设置,基本上就是覆盖机器配置设置(或要求应用程序使用Web.Config设置)

因此,我认为如果您在Web.Config中编写连接,那么当您循环连接字符串时,就可以从您的应用程序开始

ConfigurationManager.ConnectionStrings
您将只能访问在web.config中编写的连接字符串

请尝试web.config connectionstring部分中的
。因此,我认为这将清除Machine.config连接字符串。

您尝试过吗

Configuration c = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("/");

请尝试下面的代码或发出linq查询,以查找两种配置的互补性(差异)。如果索引0处的连接字符串来自计算机配置,则以下yeilds为true,同时比较索引0处的连接字符串,否则将产生false:

System.Configuration.ConfigurationManager.ConnectionStrings[0].Equals
(System.Configuration.ConfigurationManager.OpenMachineConfiguration()
.ConnectionStrings.ConnectionStrings[0])

从MSDN中,还可以查看System.Web.Configuration命名空间


对于localweb.config中的get first ConnectionString,请使用它:

 var ms = System.Configuration.ConfigurationManager.OpenMachineConfiguration();
 if (ConfigurationManager.ConnectionStrings.Count > ms.ConnectionStrings.ConnectionStrings.Count)
            return ConfigurationManager.ConnectionStrings[ms.ConnectionStrings.ConnectionStrings.Count].ConnectionString;

嗯。什么?第一句话讲得通,但其余的话讲不通。如果我的理解有误,请纠正。这是我已经在尝试的。ConfigurationManager.ConnectionString集合包含来自web.config和machine.config的连接字符串。我尝试了此操作,但仅从machine.config获取连接字符串。不完全是我想要的,但它似乎是可行的。我喜欢LINQ的想法。我还没有实现这一点,但我相信它会起作用。谢谢
 var ms = System.Configuration.ConfigurationManager.OpenMachineConfiguration();
 if (ConfigurationManager.ConnectionStrings.Count > ms.ConnectionStrings.ConnectionStrings.Count)
            return ConfigurationManager.ConnectionStrings[ms.ConnectionStrings.ConnectionStrings.Count].ConnectionString;