1

How do I read connection strings from custom config file (say abc.config) using WebConfigurationManager from asp.net's C# code?

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

This doesn't seem to work.

8
  • What do you mean doesn't seem to work ? Do you get an exception ? Is it not loaded ? What is the bahvior ? Commented Jun 15, 2012 at 21:14
  • Check your config path properly. It should be simple. Is the conf object null ? Commented Jun 15, 2012 at 21:14
  • It reads some SQLEXPRESS as data source (a different connection string) not from abc.config Commented Jun 15, 2012 at 21:24
  • SQLEXPRESS was 0th element, the connection string from abc.config was the 1st element. Commented Jun 15, 2012 at 21:27
  • What do you mean by that ? This information seems irrelevant to the question. Can you please share the file ? You are telling its a custom config and not a standard web.config file. Commented Jun 15, 2012 at 21:27

2 Answers 2

3

you can use this trick: its my custom method- using webapp.config from web root. readl all app settings and return;

//Read WebAppConfiguration
public static AppSettingsSection ReadAllWebappConfig()
{
    string physicalWebAppPath = "";
    AppSettingsSection appSettings;

    ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
    physicalWebAppPath = System.Web.Hosting.HostingEnvironment.MapPath("~/webapp.config");

    if (System.IO.File.Exists(physicalWebAppPath))
    {
        fileMap.ExeConfigFilename = physicalWebAppPath;
        Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
        appSettings = (AppSettingsSection)config.GetSection("appSettings");
    }
    else
        appSettings = null;

    return appSettings;
}

webapp.config sample:

<configuration>
  <appSettings>
    <add key="WebApp-FixedTopMenu" value="true"/>
    <add key="WebApp-FixedTopMenuThickness" value="true"/>
  </appSettings>
</configuration>
Sign up to request clarification or add additional context in comments.

2 Comments

What if I don't have appSettings node ?
All XML need root and item element, its a standard XML, You need the root (configuration) and Item element (appSettings) and your desire properties (such as 'WebApp-FixedTopMenu').
1

I dont think you can read it with webconfigurationmanager. you will have read like any xml file as it is an xml file

public static string GetSingleValue(string strXPathExpression, string strAttributeName)
        {
            XmlNode node = GetNode(strXPathExpression);
            if (node != null)
            {
                XmlAttribute attribute = node.Attributes[strAttributeName];
                if (attribute != null)
                    return attribute.Value;
            }

            return string.Empty;


        }

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.