我是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);
}
但是每当我尝试输入用户名和密码时,都会出现一个名为配置系统无法初始化的错误。我只是想知道这是什么问题,我怎么能解决这个问题?
请帮忙。
答案 0 :(得分:369)
确保项目中的配置文件(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
。
它对我有用,希望有所帮助
答案 1 :(得分:97)
从 c:\ Users \ username \ AppData \ Local \ appname 和 c:\ Users \ username \ AppData \ Roaming \ appname 删除旧配置文件,然后尝试重启你的申请。
答案 2 :(得分:18)
有时会出现错误,因为Windows会在
中创建副本C:\ Users \ App Data \ Local \&#34;您的应用名称&#34; ...
只需删除此文件夹即可。试试吧。
答案 3 :(得分:11)
如果您已将自己的自定义配置部分添加到App.Config
,请确保已在<configSections>
元素中定义了该部分。我添加了我的配置XML,但忘记将配置部分向上声明 - 这导致了“配置系统无法初始化”的异常。
答案 4 :(得分:6)
我在MSTest类中遇到了同样的问题:Marlon Grech in his article说“必须将元素定义为App.config中的第一个元素。”
因此请确保它是元素下的第一个元素。我把AppSettings放在首位。
答案 5 :(得分:4)
我知道这已经得到了解答,但我在单元测试中遇到了完全相同的问题。我正在撕掉我的头发 - 添加appSettings部分,然后根据答案声明配置部分。终于发现我已经在我的配置文件中进一步声明了appSettings部分。两个部分都指向我的外部设置文件“appSettings.config”,但第一个appSettings元素使用属性文件,而另一个使用属性 configSource 。我知道问题是关于connectionStrings。果然,如果appSettings元素是使用不同属性复制的connectionStrings元素,就会发生这种情况。
希望这可以为其他人提供解决方案,然后再沿着我走的路走下去,这会浪费一两个小时。 叹息哦我们开发人员的生活。有些日子我们在调试时浪费的时间超过了我们开发的时间!
答案 6 :(得分:3)
如果您有用户范围设置,您可能还在[Userfolder] \ AppData \ Local [ProjectName]文件夹中的某处有一个user.config文件。
如果稍后删除用户范围设置,则不会自动删除user.config,并且它的存在可能会导致相同的错误消息。删除文件夹对我来说很有用。
答案 7 :(得分:3)
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="xyz" value="123" />
</appSettings>
</configuration>
答案 8 :(得分:3)
卸载Oracle客户端驱动程序后,我开始解决此问题,并删除了 C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ machine.config !
从另一台计算机上复制它解决了这个问题。
答案 9 :(得分:1)
.Net Core WinForms / WPF / .Net标准类库项目的简便解决方案
步骤1:通过Nuget Manager安装<!-- <button (click)="getAreaCodes2()">GET /productss</button> -->
<ul>
<li *ngFor="let product of products" >
-- id: {{product.id}}
-- name: {{product.title}}
-- base: {{product.base}}
</li>
</ul>
<div class="mat-elevation-z8">
<table mat-table [dataSource]="dataSource">
<!-- Position Column -->
<ng-container matColumnDef="standort">
<th mat-header-cell *matHeaderCellDef> Standort </th>
<td mat-cell *matCellDef="let element"> {{element.title}} </td>
</ng-container>
<!-- Name Column -->
<ng-container matColumnDef="stammnummer">
<th mat-header-cell *matHeaderCellDef> Stammnummer </th>
<td mat-cell *matCellDef="let element"> {{element.title}} </td>
</ng-container>
<!-- Weight Column -->
<ng-container matColumnDef="bereich">
<th mat-header-cell *matHeaderCellDef> Bereich </th>
<td mat-cell *matCellDef="let element"> {{element.title}} </td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
</table>
<mat-paginator [pageSizeOptions]="[5, 10, 20]" showFirstLastButtons></mat-paginator>
</div>
步骤2:添加新的System.Configuration.ConfigurationManager
文件
App.Config
第3步:获取值
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="Bodrum" value="Yalikavak" />
</appSettings>
</configuration>
如果您是从string value = ConfigurationManager.AppSettings.Get("Bodrum");
// value is Yalikavak
调用它,则将Class Library
文件添加到您的主项目中。
答案 10 :(得分:1)
与我同样的问题我通过删除verion =&#34; v3.5&#34;解决了我的问题。来自App.config。
<强>之前强>
<?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>
以下是如何使用
版本答案 11 :(得分:1)
哇我花了很长时间才弄明白这个。由于某些原因,在[assembly: AssemblyCompany("CompanyName")]
更改属性AssemblyInfo.cs
会使此错误消失。我正在引用一个对属性[assembly: AssemblyCompany("CompanyName")]
具有不同值的项目。我确定两个项目都具有相同的属性值,并且效果很好!
答案 12 :(得分:0)
值得注意的是,如果你将连接字符串之类的内容添加到app.config中,那么如果你在定义的配置部分之外添加项目,它就不会立即抱怨,但当你尝试访问它时,那你就是然后可能会出现上述错误。
折叠所有主要部分,并确保所定义的部分之外没有任何项目。很明显,当你真正发现它时。
答案 13 :(得分:0)
这有点愚蠢,但对我来说,我通过从源代码控制中获取最新代码来修复它。我认为有一些新的配置元素是由其他人添加的,我需要覆盖我的配置文件。 OP显示我得到的错误,这并没有真正指向我正确的方向。
答案 14 :(得分:0)
我也遇到了同样的问题,但不小心写了 没有写入,前一个应该进入这个标签。因此,“配置系统无法初始化”错误出现了。 希望它会有所帮助
答案 15 :(得分:0)
在我的情况下,唯一的解决方案是在我的Test项目中添加对System.Configuration
的引用。
答案 16 :(得分:0)
在我的情况下,我在app.config文件中有两个配置。删除隐藏在代码行中的那个后,该应用程序正常工作。
因此,如果有人遇到同样的问题,请先检查您是否有重复的配置。
答案 17 :(得分:0)
就我而言,在我的.edmx文件中,我运行了“从数据库更新模型”命令。此命令为我的app.config文件添加了一个不必要的连接字符串。我删除了那个连接字符串,一切都很好。
答案 18 :(得分:0)
我通过使用以下代码解决了问题
<?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>
答案 19 :(得分:0)
如果其中有一些“特殊”字符,请尝试将.config文件保存为utf-8。就我而言,这就是控制台应用程序的问题。
答案 20 :(得分:0)
正如他的评论中提到的 @Flash Gordon 一样,您需要在 App.config 中定义任何自定义标签(作为一部分)。 >文件,位于<configSections>
下。例如,您正在使用SpecFlow并添加<specFlow>
标签来进行测试自动化项目,那么最简单的App.config版本将如下所示:
答案 21 :(得分:0)
我刚遇到这个问题是因为我有一个<configuration>
元素嵌套在<configuration>
元素内。
答案 22 :(得分:0)
经过长时间的搜索,我发现此异常具有一个内部异常,该异常告诉您配置文件到底出了什么问题
答案 23 :(得分:0)
我重新启动了Visual Studio甚至整个PC。 我清理了项目,重建并删除了bin文件。
在我将配置从x64更改为x86之前,没有任何帮助。 它可以在x86上运行,但是当我将其改回时,它也可以运行!