You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#读取Azure连接字符串遇ConfigurationErrorsException错误求助

问题描述

我正在通过C#学习云计算,目前尝试从XML配置文件中读取Azure云的连接字符串并在控制台输出,以确保连接云服务前代码能正常运行。但运行时出现错误:System.Configuration.ConfigurationErrorsException: 'Configuration system failed to initialize'。我猜测是XML配置文件存在问题,但不确定具体原因,想请教哪里出错了?

相关代码

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>

错误信息

错误截图

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

解决方案

你的问题主要出在配置文件结构错误,还有几处细节问题,具体修正如下:

1. 修复配置文件结构

  • <configSections>节点是用来定义自定义配置节的,不能直接嵌套<appSettings>或连接字符串,这是导致配置初始化失败的核心原因。
  • 连接字符串必须放在专门的<connectionStrings>节点下,而非<appSettings>。
  • 你还把providerName拼写成了providedName,这也是无效配置的原因之一。

修正后的App.config(注意:配置文件要放在主控制台项目My_Program中,类库项目的App.config不会被控制台程序加载):

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <connectionStrings>
    <add 
      name="employeeAzurePreviewDatabase"
      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>

2. 优化读取逻辑

当前遍历所有连接字符串的写法会覆盖掉前面的结果,直接通过配置项名称获取更准确,同时修正拼写错误:

public string ReadConfig() // 修正方法名:RadConfig → ReadConfig
{
    var connSettings = ConfigurationManager.ConnectionStrings["employeeAzurePreviewDatabase"];
    return connSettings?.ConnectionString ?? string.Empty;
}

3. 其他细节修正

  • 类名ReadConfigration拼写错误,应改为ReadConfiguration(少了字母u)。
  • 确保主项目已安装System.Configuration.ConfigurationManager NuGet包,否则会找不到ConfigurationManager类。

内容的提问来源于stack exchange,提问作者kawa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 17:15:37