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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.