从辅助Web配置中读取AppSettings

时间:2012-03-20 14:36:47

标签: c# asp.net web-config

我创建了第二个Web配置并将其放在一个文件夹中:

〜/配置/ OtherConnections.config

我的配置文件如下:

<?xml version="1.0"?>

<configuration>
  <appSettings>
    <add key="serverurl" value="http://serverUrl" />
    <add key="UserName" value="myUser" />
    <add key="Password" value="XXXXXXX" />
  </appSettings>
</configuration>

当我尝试从以下项目中读取值时:

string connectionInfo = ConfigurationManager.AppSettings["UserName"];

我没有得到回报。这是因为Web配置是在一个文件夹中,还是在这个Web应用程序中还有其他东西?

3 个答案:

答案 0 :(得分:4)

  

我没有得到回报。这是因为web配置在文件夹中吗??

不,不是文件夹而是文件名。你可以使用~/Configuration/Web.config但是你必须明确地打开它:

var config = WebConfigurationManager.OpenWebConfiguration("~/Configuration");

然后从中读取:

string url  = config.AppSettings.Settings["serverurl"].Value;

请注意,您无法指定(因此不会更改)实际的web.config文件名。只是文件夹。

答案 1 :(得分:2)

每个网络文件夹只能有一个web.config个文件

无论如何都有两个选项:

  • 在IIS管理器中,您需要将子文件夹配置为新应用程序。它使用正在运行的应用程序中的web.config文件。

  • 另一种选择是使用单个配置文件并添加<location>部分来对文件进行分段,以便对某些文件夹或文件采取不同的行动。 (我建议更多信息here

答案 2 :(得分:0)

您可以使用WebConfigurationmanager方法访问多个配置文件。添加命名空间:

using System.Web.Configuration;

所以,要访问

的appSettings

../SomeProjectFolder/Environment/Web.config,你可以这样做:

var config = WebConfigurationManager.OpenWebConfiguration("~/SomeProjectFolder/Environment/");
string username = config.AppSettings.Settings["username"].Value;

希望这有帮助。