我是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);
}
但每当我尝试输入用户名和密码时,都会出现一个错误,称为配置系统无法初始化。我只是想知道这是什么问题,我怎么能解决这个问题?
请帮忙。
确保项目中的配置文件(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>
请注意,在configuration
元素内,第一个孩子必须是configSections
元素。
在name
元素的section
属性中,请确保将YourProjectName
替换为您的实际项目名称。
碰巧我在类库项目中创建了一个web服务,然后我复制(覆盖)配置文件(为了使端点配置)到我的Windows应用程序,我开始遇到同样的问题。我无意中删除了configSections
。
它对我有用,希望它有所帮助
哇,我花了很长时间才弄明白这个。由于某种原因,在[assembly: AssemblyCompany("CompanyName")]
更改属性AssemblyInfo.cs
使此错误消失。我正在引用一个对[assembly: AssemblyCompany("CompanyName")]
属性具有不同值的项目。我确定两个项目都具有相同的属性值,并且效果很好!
与我相同的问题我通过从App.config中删除version =“v3.5”解决了我的问题。
之前
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/>
</startup>
<supportedRuntime version="v3.5" />//Remove this
</configuration>
解
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/>
</startup>
</configuration>
以下是如何使用版本
值得注意的是,如果你将连接字符串之类的内容添加到app.config中,那么如果你在定义的配置部分之外添加项目,它就不会立即抱怨,但当你尝试访问它时,你可能会得到它以上错误。
折叠所有主要部分,并确保没有定义的部分之外的项目。很明显,当你真正发现它时。
在我的情况下,唯一的解决方案是在我的测试项目中添加对System.Configuration
的引用。
这有点愚蠢,但对我来说,我通过从我的代码的源代码控制中获取最新信息来修复它。我认为有一些新的配置元素是由其他人添加的,我需要覆盖我的配置文件。 OP显示我得到的错误,这并没有真正指向我正确的方向。
我也遇到了同样的问题,但不小心我写的没有写,前一个应该进入这个标签。因此,“配置系统无法初始化”错误出现了。希望它会有所帮助
在我的例子中,我在app.config文件中有两个配置。删除隐藏在代码行中的那个后,该应用程序正常工作。
因此,对于有同样问题的人,请先检查您是否有重复的配置。
如果您正在处理Azure WebJob - 我必须在升级到最新的4.6.1后删除以下内容。
<compilation debug="true" targetFramework="4.6.1">
<assemblies>
<add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</assemblies>
</compilation>
希望这可以帮助。
就我而言,在我的.edmx文件中,我运行了“从数据库更新模型”命令。此命令为我的app.config文件添加了一个不必要的连接字符串。我删除了那个连接字符串,一切都很好。
我使用下面的代码解决了这个问题
<?xml version="1.0" encoding="utf-8" ?>
<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>
<appSettings>
<add key="SPUserName" value="TestUser" />
<add key="SPPassword" value="UserPWD" />
</appSettings>
</configuration>
从c:\ Users \ username \ AppData \ Local \ appname和c:\ Users \ username \ AppData \ Roaming \ appname中删除旧配置文件,然后尝试重新启动应用程序。
如果你有一些“特殊”字符,尝试将.config文件保存为utf-8。这是我的控制台应用程序的问题。
我刚刚拥有这个,因为我有一个嵌套在<configuration>
元素内的<configuration>
元素。
经过长时间的搜索,我意识到,这个异常有一个内部异常,可以准确地告诉你配置文件有什么问题
有时会出现错误,因为Windows会在窗口中创建副本
C:\ Users \ App Data \ Local \“You App Name”......
只需删除此文件夹即可。试试吧。
如果您已将自己的自定义配置部分添加到App.Config
,请确保已在<configSections>
元素中定义了该部分。我添加了我的配置XML,但忘了将配置部分向上声明 - 这导致了“配置系统无法初始化”的异常。
我在MSTest类中遇到了同样的问题:Marlon Grech in his article说“必须将元素定义为App.config中的第一个元素。”
因此,请确保它是元素下的第一个元素。我把AppSettings放在首位。
我知道这已经得到了回答,但我在单元测试中遇到了完全相同的问题。我正在撕掉我的头发 - 添加appSettings部分,然后根据答案声明配置部分。终于发现我已经在我的配置文件中进一步声明了appSettings部分。两个部分都指向我的外部设置文件“appSettings.config”,但第一个appSettings元素使用属性文件,而另一个使用属性configSource。我知道问题是关于connectionStrings。果然,如果appSettings元素是使用不同属性复制的connectionStrings元素,则会发生这种情况。
希望这可以为其他人提供解决方案,然后再沿着我走的路走下去,这会浪费一两个小时。感叹我们开发人员的生活。有些日子我们在调试时浪费的时间比开发时间多!
卸载Oracle客户端驱动程序后,我开始解决这个问题,它删除了我的C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ machine.config!
从另一台计算机复制它解决了这个问题。
如果您有用户范围设置,您可能还在[Userfolder]\AppData\Local\[ProjectName]
文件夹中的某个位置有一个user.config文件。
如果稍后删除用户范围设置,则不会自动删除user.config,并且它的存在可能会导致相同的错误消息。删除文件夹对我来说很有用。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="xyz" value="123" />
</appSettings>
</configuration>