配置系统初始化失败

sea*_*ean 215 c# mysql login visual-studio-2010 visual-studio

我是Visual Studio的新手.我正在创建一个登录表单.

我有这个代码.

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);
}
Run Code Online (Sandbox Code Playgroud)

但每当我尝试输入用户名和密码时,都会出现一个错误,称为配置系统无法初始化.我只是想知道这是什么问题,我怎么能解决这个问题?

请帮忙.

小智 378

确保项目中的配置文件(web.config if web或app.config if 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>
Run Code Online (Sandbox Code Playgroud)

请注意,在configuration元素内部,第一个子configSections元素必须是元素.

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

碰巧我在类库项目中创建了一个web服务,然后我复制(覆盖)配置文件(为了使端点配置)到我的Windows应用程序,我开始遇到同样的问题.我无意中删除了configSections.

它对我有用,希望它有所帮助

  • "在'configuration'元素中,第一个孩子必须是'configSections'元素"<<这对我来说至关重要.谢谢. (79认同)
  • 另一种情况 - 如果您正在寻找ConfigurationManager.Appsettings [""],请确保配置中存在<appSettings>.否则你会得到这个例外 (6认同)
  • 它修复了我的问题,其中`configSections`元素存在但位于app.config的后面部分.我不禁要问为什么会发生这个错误.我认为不需要订购XML元素. (5认同)
  • Microsoft实施此app.config的方式受到阻碍!!!他们至少可以做的是抛出更好的错误消息! (5认同)
  • 这是对的.configSections应该是配置元素下的第一个子节点. (2认同)

小智 102

c:\ Users\username\AppData\Local\appnamec:\ Users\username\AppData\Roaming\appname中删除旧配置文件,然后尝试重新启动应用程序.

  • 这实际上对我有用,谢谢你的提示! (5认同)
  • 谢谢它的工作.但是这可能是造成这种错误的原因. (3认同)
  • 谢谢,工作.但是我还是不明白什么是问题? (2认同)

小智 18

有时会出现错误,因为Windows会在窗口中创建副本

C:\ Users\App Data\Local \"You App Name"......

只需删除此文件夹即可.试试吧.

  • 谢谢.我无法通过我的应用程序"拾取"设置文件字符串来解决我的问题.我清理了配置文件,重新生成.suo文件,删除了所有现有的.settings文件,仍然无法从任何新设置文件加载,但在构建时没有收到任何错误.这场噩梦终于结束了. (2认同)

Fla*_*don 12

如果您已将自己的自定义配置部分添加到自己的配置部分,请App.Config确保已在<configSections>元素中定义了该部分.我添加了我的配置XML,但忘了将配置部分向上声明 - 这导致了"配置系统无法初始化"的异常.

  • 此外 - 如果你有一个声明在顶部的部分并且下面部分中的名称有拼写错误,你将收到此错误.如果查看抛出异常的InnerException,它将告诉您哪个部分是问题. (3认同)

Ger*_*ius 9

经过长时间的搜索,我意识到,这个异常有一个内部异常,可以准确地告诉你配置文件出了什么问题


Ali*_*ned 6

我在MSTest类中遇到了同样的问题:Marlon Grech在他的文章中说"元素必须被定义为App.config中的第一个元素."

因此,请确保它是元素下的第一个元素.我把AppSettings放在首位.


Wuo*_*naj 5

如果您有用户范围的设置,您可能还会在[Userfolder]\AppData\Local\[ProjectName]文件夹中的某个位置有一个 user.config 文件。

如果您稍后删除用户范围设置,则 user.config 将不会自动删除,并且它的存在可能会导致相同的错误消息。删除文件夹对我来说很有效。