无法识别的元素“设置”。(C:\Dev\DOT.NET\AutoPay\ibeam.config 第 15 行)
AppInfo.Sections.Get("AutoPay.Common.Credentials") 'AppInfo.Sections.Get("AutoPay.Common.Credentials")' 引发了类型为 'System.Configuration.ConfigurationErrorsException' 的异常 System.Configuration.ConfigurationSection {System. Configuration.ConfigurationErrorsException}
我的配置文件:
<?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>
Run Code Online (Sandbox Code Playgroud)
基(抽象)类:
public abstract class BaseConfigInfo : ConfigurationSectionGroup
{
protected Configuration Configuration;
protected ConfigurationSectionGroup AppInfo;
protected ClientSettingsSection Credentials;
protected BaseConfigInfo(string configFile)
{
var fileMap = new ConfigurationFileMap(configFile); …Run Code Online (Sandbox Code Playgroud) 我正在使用 C# 和 .NET Framework 4.7 开发 WinForm 应用程序。
我想打开一个 Web.config 文件,读取其 appSetting 部分并修改它。
要打开它,我使用这个:
System.Configuration.Configuration config = WebConfigurationManager.OpenWebConfiguration(null);
Run Code Online (Sandbox Code Playgroud)
它打开它,但是当我尝试使用以下方法获取密钥时:
string[] keys = config.AppSettings.Settings.AllKeys;
Run Code Online (Sandbox Code Playgroud)
我得到一个空数组。
这是应用程序设置部分:
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>
<connectionStrings>
</connectionStrings>
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" /> …Run Code Online (Sandbox Code Playgroud) 如果文件存在,我正在寻找一种有条件地将文件包含在 Ansible 播放中的方法。不幸的是,如果文件不存在,使用“include”会引发致命错误。我正在遍历一堆包并安装它们,我想检查每个包的可选配置文件。请参阅下面的简化示例:
---
- name: Basic setup of an Ubuntu box
hosts: all
vars:
packages:
- ack-grep
- vim
- zsh
- htop
- openssh-server
- cowsay
tasks:
- name: Run package configuration
action: apt name=$item
include: "packages/${item}.yml"
with_items: $packages
Run Code Online (Sandbox Code Playgroud)
一旦脚本尝试包含不存在的文件,它就会停止并显示错误。我确定我只是想以错误的方式做某事,但我已经在这工作了几个小时并尝试了我能想到的一切,但没有结果。
我正在尝试使用以下代码:
String MainDB = ConfigurationManager.AppSettings["MainDB"];
MessageBox.Show(MainDB);
String MailInfo = ConfigurationManager.AppSettings["MailInfo"];
MessageBox.Show(MailInfo);
String HousingIndexLocation = ConfigurationManager.AppSettings["HousingIndex"];
MessageBox.Show(HousingIndexLocation);
Run Code Online (Sandbox Code Playgroud)
访问此屏幕生成的值:

每次返回的值都为null。
在这些设置的实现中我缺少什么?
我有这个app.config:
<?xml version="1.0"?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="conexx" connectionString="Data Source=192.168.1.2 ;Initial Catalog =ifdcontroladoria3 ;uid =sa;pwd = admin2012" providerName="System.Data.SqlClient" />
</connectionStrings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client"/></startup></configuration>
Run Code Online (Sandbox Code Playgroud)
我试图用这个C#更新这个连接字符串:
coneydstr = @"Data Source=" + comboBox1.Text + ";Initial Catalog =" + cmbBancos.Text + ";uid =" + txtUsuario.Text + ";pwd =" + txtPassword.Text;
try
{ coneyd.ConnectionString = coneydstr;
coneyd.Open();
funciona = true;
lblStringSalida.Text = coneydstr;
}
catch (Exception ex)
{ MessageBox.Show(coneyd + ex.Message.ToString()); }
if (funciona)
{
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.ConnectionStrings.ConnectionStrings["conexx"].ConnectionString = coneydstr;
config.Save();
} …Run Code Online (Sandbox Code Playgroud) 我们正在使用SCCM 2012,我正在打包我们的所有应用程序并在我去的时候进行测试.有些只有.exe,比.msi更困难.有些没有文档,我正在尝试不同类型的命令行开关来查看哪些有效.
我能够测试这些的唯一方法是创建应用程序,部署类型和部署,然后将其推送到我拥有的测试客户端.
当应用程序下载然后立即失败时,我可以查看哪些日志以获取更多信息?查看SCNotify,Execmgr和Windows\CCM\Logs的客户端日志并未发现太多内容.服务器端日志似乎也没有消除任何额外的光.
我没有做任务序列,所以SMSTS.Log没有多大帮助.
当你认为你有正确的命令行但是应用程序下载到客户端然后失败时,你们在哪里开始排除故障?
谢谢.
使用System.Configuration,如何确定子配置元素是完全丢失还是空的?
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MissingConfigElementTest
{
class MyConfigurationElement : ConfigurationElement
{
[ConfigurationProperty("name")]
public string Name
{
get { return (string)base["name"]; }
}
}
class MyConfigurationSection : ConfigurationSection
{
[ConfigurationProperty("empty", DefaultValue = null)]
public MyConfigurationElement Empty
{
get { return (MyConfigurationElement)base["empty"]; }
}
[ConfigurationProperty("missing", DefaultValue = null)]
public MyConfigurationElement Missing
{
get { return (MyConfigurationElement)base["missing"]; }
}
}
class Program
{
static void Main(string[] args)
{
var configSection …Run Code Online (Sandbox Code Playgroud) 我目前的理解是它在我的配置文件中调用某些东西并返回数据.我不清楚ConfigurationManager.AppSettings的参数是什么.
我查看了这个文档(https://msdn.microsoft.com/en-us/library/1xtk877y%28v=vs.110%29.aspx),但不太了解它.
对于上下文,这是我正在使用的代码:
string code1 = ConfigurationManager.AppSettings[string1 + string2];
string code2 = ConfigurationManager.AppSettings[string3];
string query = new BuildMDXQuery(cube).BuildFetchInventoryQuery(code1, code2);
Run Code Online (Sandbox Code Playgroud)
我想知道如何在配置文件中找到调用的内容,如果有的话,以及使用ConfigurationManager.AppSettings的目的是什么.谢谢!
我正在创建一个WinForms应用程序.我把我的连接字符串放在App.config文件中.然后创建连接字符串变量
string gLwConnStr = ConfigurationManager.ConnectionStrings["LWConnectionString"].ConnectionString;
string sql = "Select * from Users Where LoginName='" + System.Security.Principal.WindowsIdentity.GetCurrent().Name + "'";
string tbl = "User";
DataTable dt = new DataTable(tblName);
SqlDataAdapter da = new SqlDataAdapter(sql, gLwConnStr);
da.Fill(dt);
Run Code Online (Sandbox Code Playgroud)
这段代码看起来是否正确?我不像其他帖子那样调用任何.open命令,因此我不知道是否必须关闭以及如何关闭它.我也只读数据,而不是写数据所以我不使用上下文.其他帖子建议"使用",但我如何在此代码中使用它?我尝试在块周围使用它返回红线(就像坏语法)
我看到其他帖子使用sqlconnection打开连接然后关闭连接但我不在这里使用它.我怎么关闭它?
我不明白为什么其他人说这篇文章是重复的.如果你认为它是重复的并且答案已经提供,请指出.对不起,我是C#语言的新手,有时候我没有看到小的差异.
能否请您建议代码应该如何?
在:
使用ConfigurationManager从任意位置加载配置, 我发现了一种解决方案。我正在处理的项目使用网络上的appSettings.config文件位置。但是,当我尝试使用引用的代码时:
System.Configuration.ConfigurationFileMap fileMap = new ConfigurationFileMap("Z:\Settings\appSettings.config"); //Path to your config file
System.Configuration.Configuration configuration = System.Configuration.ConfigurationManager.OpenMappedMachineConfiguration(fileMap);
Run Code Online (Sandbox Code Playgroud)
到目前为止,一切都很好。appSettings.config文件如下所示:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="Environment" value="Development" />
</appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)
但是然后我到达以下行:
var settings = configuration.AppSettings.Settings;
Run Code Online (Sandbox Code Playgroud)
或使用它的任何东西(例如Settings.Count),都会收到无效的强制转换异常。基本上,我如何从中获得“环境”的价值?