我目前正在创建一个登录表单,并有以下代码:

string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
try
{
    using (OdbcConnection connect = new OdbcConnection(connectionString))
    {
        connect.Open();
        OdbcCommand cmd = new OdbcCommand("SELECT username, password FROM receptionist", connect);
        OdbcDataReader reader = cmd.ExecuteReader();

        if (username_login.Text == username && password_login.Text == password)
        {
            this.Hide();
            MessageBox.Show("Invalid User", "Login Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            this.Close();
        }
        else 
            MessageBox.Show("Invalid User", "Login Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        connect.Close();
    }
}
catch (OdbcException ex)
{
    MessageBox.Show(ex.Message, "error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

但每当我尝试输入用户名和密码时,就会出现一个名为“配置系统初始化失败”的错误。这是什么问题,我怎么解决它?


当前回答

如果您在其中有一些“特殊”字符,请尝试将.config文件保存为utf-8。这就是我的控制台应用程序的问题所在。

其他回答

我在卸载Oracle客户端驱动程序后开始遇到这个问题,它删除了我的C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\machine.config!

从另一台计算机复制它就解决了这个问题。

确保您的配置文件(web。Config如果web,或app.config如果windows)在你的项目开始:

<?xml version="1.0"?>
<configuration>
    <configSections>
        <sectionGroup name="applicationSettings" 
                      type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >

            <section name="YourProjectName.Properties.Settings" 
                     type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
                     requirePermission="false" />

        </sectionGroup>
    </configSections>
</configuration>

注意,在configuration元素中,第一个子元素必须是configSections元素。

在section元素的name属性中,确保将YourProjectName替换为实际项目的名称。

它发生在我身上,我在一个类库项目中创建了一个webservice,然后我复制(覆盖)配置文件(为了带来端点配置)到我的windows应用程序,我开始有同样的问题。我无意中删除了configSections。

如果你已经在App.Config中添加了自己的自定义配置部分,请确保你已经在<configSections>元素中定义了该部分。我添加了我的配置XML,但忘记在上面声明配置部分——这导致异常“配置系统初始化失败”。

I know this has already been answered but I had exactly the same problem in my unit tests. I was tearing my hair out - adding an appSettings section, and then declaring the configuration section as per the answer. Finally found out that I had already declared an appSettings section further up my config file. Both sections pointed to my external settings file "appSettings.config" but the first appSettings element using the attribute file whilst the other used the attribute configSource. I know the question was about the connectionStrings. Sure enough, this happens if the appSettings element is the connectionStrings element being duplicated with different attributes.

希望这可以为其他人提供解决方案,以免他们重蹈我的覆辙,浪费一两个小时。感叹我们开发者的生活。有时候我们在调试上浪费的时间比在开发上还要多!

值得注意的是,如果你在app.config中添加连接字符串之类的东西,如果你在已定义的配置部分之外添加项目,它不会立即报错,但当你尝试访问它时,你可能会得到上述错误。

折叠所有主要部分,并确保在已定义的部分之外没有项目。很明显,当你真正发现它的时候。