从辅助webconfig读取AppSettings

本文关键字:读取 AppSettings webconfig | 更新日期: 2023-09-27 18:28:35

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

~/Configuration/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应用程序中发生了其他事情?

从辅助webconfig读取AppSettings

我没有收回价值。这是因为web配置在文件夹中吗?

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

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

然后阅读:

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

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

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

无论如何都有两种选择:

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

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

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

using System.Web.Configuration;

因此,要访问的appSettings

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

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

希望这能有所帮助。