[英]System.Configuration.ConfigurationErrorsException - Unrecognized element 'setting'
Unrecognized element 'setting'.
无法识别的元素“设置”。 (C:\\Dev\\DOT.NET\\AutoPay\\ibeam.config line 15)
(C:\\ Dev \\ DOT.NET \\ AutoPay \\ ibeam.config第15行)
AppInfo.Sections.Get("AutoPay.Common.Credentials") 'AppInfo.Sections.Get("AutoPay.Common.Credentials")' threw an exception of type 'System.Configuration.ConfigurationErrorsException' System.Configuration.ConfigurationSection {System.Configuration.ConfigurationErrorsException}
AppInfo.Sections.Get(“ AutoPay.Common.Credentials”)'AppInfo.Sections.Get(“ AutoPay.Common.Credentials”)'引发了类型为'System.Configuration.ConfigurationErrorsException'的异常System.Configuration.ConfigurationSection {系统。 Configuration.ConfigurationErrorsException}
My config file : 我的配置文件 :
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="AppInfo" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="AutoPay.Common.Credentials"
type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
allowExeDefinition="MachineToLocalUser"
requirePermission="false" />
</sectionGroup>
</configSections>
<AppInfo>
<AutoPay.Common.Credentials>
<setting name="UserName" serializeAs="String"><value>********</value></setting>
<setting name="Password" serializeAs="String"><value>********</value></setting>
<setting name="ServiceUrl" serializeAs="String"><value>********</value></setting>
</AutoPay.Common.Credentials>
</AppInfo>
</configuration>
Base (abstract) class : 基础(抽象)类 :
public abstract class BaseConfigInfo : ConfigurationSectionGroup
{
protected Configuration Configuration;
protected ConfigurationSectionGroup AppInfo;
protected ClientSettingsSection Credentials;
protected BaseConfigInfo(string configFile)
{
var fileMap = new ConfigurationFileMap(configFile);
Configuration = ConfigurationManager.OpenMappedMachineConfiguration(fileMap);
AppInfo = Configuration.GetSectionGroup("AppInfo");
// THIS IS WHERE THE ERROR POPS //
Credentials = (ClientSettingsSection)AppInfo.Sections.Get("AutoPay.Common.Credentials");
}
protected string GetCredentialsString(string kvpName)
{
var setting = Credentials.Settings.Get(kvpName);
return setting.Value.ValueXml.InnerText;
}
public string UserName { get { return GetCredentialsString("UserName"); } }
public string Password { get { return GetCredentialsString("Password"); } }
public string ServiceUrl { get { return GetCredentialsString("ServiceUrl"); } }
}
Sample concrete class : 样例课程 :
public class ConfigInfoIbeam : BaseConfigInfo
{
public ConfigInfoIbeam() : base(ConfigurationManager.AppSettings["ConfigInfoIbeam"]) { }
}
I know I am missing something simple here. 我知道我在这里缺少一些简单的东西。 I'm running in .NET 4. Nothing too usefull showing up when I try to google for this error.
我正在.NET 4中运行。当我尝试用Google搜索此错误时,没有什么显示的有用。 Any ideas?
有任何想法吗?
I found the problem. 我发现了问题。 In my config I had this:
在我的配置中,我有:
<AppInfo>
<AutoPay.Common.Credentials>
<setting name="UserName" serializeAs="String"><value>********</value></setting>
<setting name="Password" serializeAs="String"><value>********</value></setting>
<setting name="ServiceUrl" serializeAs="String"><value>********</value></setting>
</AutoPay.Common.Credentials>
</AppInfo>
I changed it to: 我将其更改为:
<AppInfo>
<AutoPay.Common.Credentials>
<setting name="UserName" serializeAs="String">
<value>********</value>
</setting>
<setting name="Password" serializeAs="String">
<value>********</value>
</setting>
<setting name="ServiceUrl" serializeAs="String">
<value>********</value>
</setting>
</AutoPay.Common.Credentials>
</AppInfo>
Don't ask me why the underlying xml reader cannot differentiate between the two. 不要问我为什么底层的xml阅读器不能区分两者。 However, problem solved!
但是,问题解决了! grrrr...
GRRRR ...
我认为您需要<settings> </settings>
包装三个<setting> .....
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.