ConfigurationErrors Exception Error when try to console write connection string

Viewed 41

I started learning cloud computing with C#.

Right now, I am trying to console write the connection string from azure cloud: which is in xml config, to make sure my code is running properly before I connect the cloud.

When I run this, I get the error saying System.Configuration.ConfigurationErrorsException: 'Configuration system failed to initialize'.

My guess is there is something wrong with my xml config, but I am not sure.

What did I do wrong here?

program.cs

using My_Program.DataAccess;
using System;

namespace My_Program
{
    class Program
    {
        static void Main(string[] args)
        {
            var readConfig = new ReadConfigration();
            var connString = readConfig.RadConfig();

            Console.WriteLine(connString);
        }
    }
}

DataAccesss/ReadConfiguration.cs

using System;
using System.Configuration;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace My_Program.DataAccess
{
    public class ReadConfigration
    {
        public string RadConfig()
        {
            string connectionString = "";

            foreach(ConnectionStringSettings settings in ConfigurationManager.ConnectionStrings)
            {
                connectionString = settings.ConnectionString;
            }

            return connectionString;
        }
    }
}

DataAccesss/App.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <configSections>
        <appSettings>
    <add
        name="employeeAzurePreviewDatabase"
        providedName ="System.Data.SqlClient"
        connectionString="Server=tcp:myserver-demo1.database.windows.net,1433;Initial Catalog=day-1;Persist Security Info=False;User ID=CloudSAd742343E3;Password={your_password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
         
         />
        </appSettings>
    </configSections>
</configuration>

Error

enter image description here

An unhandled exception of type 'System.Configuration.ConfigurationErrorsException' occurred in System.Configuration.ConfigurationManager.dll
Configuration system failed to initialize

1 Answers
  • The connection string you have set in App.config has be under <connectionStrings> tag.

My App.config with Connectionstring tag

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="empAzureDB"
      providerName ="System.Data.SqlClient"
      connectionString="Server=tcp:myserver-demo1.database.windows.net,1433;Initial Catalog=day-1;Persist Security Info=False;User ID=CloudSAd742343E3;Password={your_password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"/>
  </connectionStrings>
</configuration>

Then code you haev written in ReadConfiguration.cs will work.

If you want to add the settings and read from appsettings tag, then it has to be like below

My App.config with appsettings tag

<?xml version="1.0" encoding="utf-8" ?>
<configuration> 
 <appSettings>  
   <add key="empAzureDB"
     value="Server=tcp:myserver-demo1.database.windows.net,1433;Initial Catalog=day-1;Persist Security Info=False;User ID=CloudSAd742343E3;Password={your_password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"/>
 </appSettings>
</configuration>

In ReadConfiguration.cs

string myappset = System.Configuration.ConfigurationManager.AppSettings["empAzureDB"];

Output

enter image description here

Related