想了解关于应用配置文件的种种的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于关于应用配置文件的种种说法的相关问题,此外,我们还将为您介绍关于AUTOSAR-关于配置文件的思考、c#–ASP.
想了解关于应用配置文件的种种的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于关于应用配置文件的种种说法的相关问题,此外,我们还将为您介绍关于AUTOSAR-关于配置文件的思考、c# – ASP.Net配置文件:设置和使用配置文件字段时遇到困难、C# 使用配置文件配置应用、C# 如何使用配置文件保存应用程序里的配置数据的新知识。
本文目录一览:- 关于应用配置文件的种种(关于应用配置文件的种种说法)
- AUTOSAR-关于配置文件的思考
- c# – ASP.Net配置文件:设置和使用配置文件字段时遇到困难
- C# 使用配置文件配置应用
- C# 如何使用配置文件保存应用程序里的配置数据
关于应用配置文件的种种(关于应用配置文件的种种说法)
- 开发测试生产环境的区分
- 将不同环境的配置文件放入不同的目录中。
比如 app / 下的 dev,stg,prd 目录,在 app 根目录下放一个启动文件 startupapp.sh
用处是在启动 catalina 前把相关的文件替换掉。内容如下
#!/bin/sh
if [ $DEPLOYMODE = "dev" ] ; then
cp /usr/tomcat/iac/dev/setclasspath.sh /usr/tomcat/bin
cp /usr/tomcat/iac/dev/server.xml /usr/tomcat/conf
cp /usr/tomcat/iac/dev/context.xml /usr/tomcat/conf
cp /usr/tomcat/iac/dev/catalina.sh /usr/tomcat/bin
fi
if [ $DEPLOYMODE = "stg" ] ; then
cp /usr/tomcat/iac/stg/setclasspath.sh /usr/tomcat/bin
cp /usr/tomcat/iac/stg/server.xml /usr/tomcat/conf
cp /usr/tomcat/iac/stg/context.xml /usr/tomcat/conf
cp /usr/tomcat/iac/stg/catalina.sh /usr/tomcat/bin
fi
if [ $DEPLOYMODE = "prd" ] ; then
cp /usr/tomcat/iac/prd/setclasspath.sh /usr/tomcat/bin
cp /usr/tomcat/iac/prd/server.xml /usr/tomcat/conf
cp /usr/tomcat/iac/prd/context.xml /usr/tomcat/conf
cp /usr/tomcat/iac/prd/catalina.sh /usr/tomcat/bin
fi
/usr/tomcat/catalina.sh run
- 可以在 yaml 文件中传入一个环境变量,比如
DEPLOYMODE =dev/stg/prd
- 数据库密码字段的密文
生成一个 base64 编码的密文
#echo -n ''zombie'' | base64
em9tYmll
建立一个 mysecret.yaml,Opaque secret 就是字符串
apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
data:
username: YWRtaW4=
password: MWYyZDFlMmU2N2Rm
挂载到 deployment 或者 Pod
apiVersion: v1
kind: Pod
metadata:
name: secret-env-pod
spec:
containers:
- name: mycontainer
image: busybox
imagePullPolicy: IfNotPresent
command:
- sleep
- "3600"
env:
- name: SECRET_USERNAME
valueFrom:
secretKeyRef:
name: mysecret
key: username
- name: SECRET_PASSWORD
valueFrom:
secretKeyRef:
name: mysecret
key: password
SECRET_PASSWORD 会带入容器的环境变量中
修改 tomcat 的 catalina.sh 的配置,将环境变量带入,这一步非常关键,否则在 server.xml 里面无法获取环境变量的值
JAVA_OPTS="-DSECRET_PASSWORD=${SECRET_PASSWORD} $JAVA_OPTS $JSSE_OPTS"
在应用的 server.xml 中进行引用,比如
<Context password="${SECRET_PASSWORD}" debug="0" crossContext="true" path="/solr"></Context>
方案的问题:
- 密码带入 pod 环境变量后是明文
- 如果是上生产环境,以上步骤会交给部署组负责,因此开发是无法知道加密后的字符串的
- 同时也不能让他登陆后台进入 Pod
- 给节点打 Label 操作
kubectl label nodes kube-node node=kube-node
kubectl get node -a -l "node=kube-node"
部署的时候加上 node-selector
nodeSelector:
node: kube-node4
AUTOSAR-关于配置文件的思考

c# – ASP.Net配置文件:设置和使用配置文件字段时遇到困难
相关示例代码:
UserProfile.cs
public class UserProfile: System.Web.Profile.ProfileBase { public static UserProfile GetUserProfile(string username) { return Create(username) as UserProfile; } public static UserProfile GetUserProfile() { return GetUserProfile(Membership.GetUser().UserName); } public string FacebookUid { get { return base["FacebookUid"] as string; } set { base["FacebookUid"] = value; } } }
Web.config文件
<profile enabled="true" inherits="WIF.Web.STS.Classes.UserProfile" defaultProvider="XmlProfileProvider" > <properties> <add name="FacebookUid" /> </properties> <providers> <add name="XmlProfileProvider" type="Artem.Web.Security.XmlProfileProvider,Artem.Web.Security.Xml" applicationName="/" fileName="Profiles.xml" folder="~/App_Data/"/> </providers> </profile>
Register.aspx.cs
profile = WIF.Web.STS.Classes.UserProfile.GetUserProfile(emailAddress); profile.FacebookUid = "";
当我离开web.config中定义的FacebookUid时;我从web.config得到这个错误:
Configuration Error: This profile property has already been defined.
我已经仔细检查了web.config;该属性条目仅在web.config中出现一次.
我想这是因为我在UserProfile类上设置了具有相同名称的属性.我从web.config中删除了属性/ add [name =’FacebookUid’]条目.一旦我做到了;当我尝试在Register.aspx.cs中设置FacebookUid的值时出现此错误:
The settings property 'FacebookUid' was not found Line 76: profile["FacebookUid"] = "";
我再试一次,这次直接使用ProfileBase类:
修订了Register.aspx.cs
var profile = System.Web.Profile.ProfileBase.Create(emailAddress,true); profile["FacebookUid"] = "";
修改了web.config:
<profile enabled="true" defaultProvider="XmlProfileProvider" > <properties> <add name="FacebookUid" /> </properties> <providers> <add name="XmlProfileProvider" type="Artem.Web.Security.XmlProfileProvider,Artem.Web.Security.Xml" applicationName="/" fileName="Profiles.xml" folder="~/App_Data/"/> </providers> </profile>
我尝试使用properties / add [name =’FacebookUid’]而没有;在相同的情况下得到与上述相同的错误.
我很难过,谷歌/ Binging让我无处可去.这里有没有人知道可能会发生什么和/或如何解决这个问题?非常感谢任何建设性的意见.
谢谢,
坦率
解决方法
Notes to Inheritors
You can create a custom profile implementation that inherits from the ProfileBase abstract class and defines properties for the user profile that are not specified in the profile configuration element.
http://msdn.microsoft.com/en-us/library/system.web.profile.profilebase.aspx
另外:你修改过XmlProfileProvider的代码吗?它似乎期待XmlProfile,没有别的.
http://www.java2s.com/Open-Source/ASP.NET/Asp.net-Samples/tinyproviders/Artem/Web/Security/XmlProfileProvider.cs.htm
C# 使用配置文件配置应用
使用配置文件配置应用
.NET Framework 通过配置文件为开发人员和管理员提供了对应应用程序运行方式的控制权和灵活性。配置文件可以按需要更改的XML文件。管理员能够控制应用程序可以访问哪些受保护的资源,应用程序将设置于配置文件中,从而没有必要中每次设置更改时重新编译应用程序。本节说明可以对什么进行配置以及为什么对应用程序进行配置会有用。
本主题描述配置文件对语法,并提供油管三种配置文件对信息:计算机配置文件、应用程序配置文件和安全配置文件。
配置文件格式
配置文件包含元素,它们是用来设置配置信息的逻辑数据结构。在配置文件内,使用标记元素的开头和结尾。例如,
<runtime>元素包括<runtime>子元素</runtime>。空元素将写为<runtime/>或<runtime></runtime>。
与所有XML文件一样,配置文件中的语法区分大小写。
使用预定义特性来制定配置设置,这些特性是元素开始标记内的名称/值对。下面的示例为<codeBase>元素指定两个特性(version和href),该元素指定运行时值何处可以找到程序集(有关详细信息,请参阅指定程序集的位置)
计算机配置文件
计算机配置文件Machine.config包含应用于整个计算机的设置。此文件位于%runtime install path%\Config目录中。Machine.config包含整个计算机范围内的程序集绑定、内置远程处理信道和ASP.NET的配置设置。
配置系统首先查看计算机配置文件,查找<appSettings>元素,然后查看开发人员可能定义的其他配置节。然后查看应用程序配置文件。为使计算机配置文件看管理,最好将这些设置放在应用程序配置文件中。为使计算机配置文件可管理,最好将这些配置放在应用程序配置文件中。但是,将这些设置放中计算机配置文件中可以使系统更易维护。例如,如果有第三方组件,且客户端和服务器应用程序同时使用该组件,那么僵该组件设置房子一个位置更方便。在这种情况下,计算配置文件使存放设置的合适位置,这样讲不会将相同的设置房子两个不同的文件中。
C# 如何使用配置文件保存应用程序里的配置数据
引言
我不知大家早先是如何保存应用程序配置,以备下次打开时使用的,反正我开始学.Net的时候就去研究序列化,以二进制或XML格式的序列化来保存应用程序配置。这样每次都要建立单独的配置类,并书写读写配置代码,相当麻烦。
期间也看了看.config文件的读写方式,感觉还是很麻烦,不如自己序列化来的踏实。
后来才猛然发现微软早提供好了settings,用以定义.config文件内容,并生成相应的强类型类,使用起来极其方便~,感觉就像在火星居住了半辈子突然发现还有地球这好地方*_*~
鉴于网上settings方面的资料不多、不详,我就以此文来介绍一下基本的用法,让小鸟们少走我那条破路,老鸟请直接从上空滑翔而过即可。
基本使用方法
首先建立一个WinForm项目,设计这样一个窗体:
通过“添加新项”功能添加一个MyApp.settings:
在打开的数据表格中做如下设置:
这样就设置好了a、b、c三个不同类型的配置变量,现在就可以在程序中使用它们了:
private void Form1_Load(object sender, EventArgs e)
{
numericUpDown1.Value = MyApp.Default.a;
textBox1.Text = MyApp.Default.b;
checkBox1.Checked = MyApp.Default.c;
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
MyApp.Default.a = numericUpDown1.Value;
MyApp.Default.b = textBox1.Text;
MyApp.Default.c = checkBox1.Checked;
MyApp.Default.Save();
}
通过上面的代码就可以在窗体开闭时分别加载、保存配置了。
运行抓图:
复杂数据类型支持情况
settings支持存储一些较为复杂的数据,比如Color、Size等类型,可以自行选择:
但并不是所有类型都可以支持,比如FileInfo类型就没有,泛型也没有,自定义类型更是不受支持的,如果需要存储这些特殊类型,就得用其他配置方案了。
读写复杂数据类型
我们以ArrayList类型为例,通过它在原程序的基础上实现记录每次关闭程序时间的功能。
首先添加一个配置变量d,其类型为System.Collections.ArrayList:
在窗体中增加一个ListBoxt,然后修改后台代码为:
高亮部分为新增的代码。
多次运行以测试:
可以看到每次的程序关闭时间都被记录并显示。
“用户”和“应用程序”
你可能注意到数据表格中“范围”这里全是“用户”:
如果改成另外一个选项,即“应用程序”会怎样呢?
报错了,我们的配置变量变成只读的了,所以这里可以简单地把它们理解为:
用户=可读写
应用程序=只读
“应用程序”选项应当是用于设定一些程序运行所必须的重要变量,比如导航网址、数学运算参数等,这些配置项如果让用户篡改就会出问题了,所以要只读。
数据被存在哪里?
你可能会发现编译后在Debug目录中有个“SettingTest.exe.config”,但无论如何操作程序,这个配置文件里始终都是描述的默认配置。
其实数据是被存在了“C:\Users\SkyD\AppData\Local\”目录中(我这是Windows7,XP或以下版本可能不是这里)
我在“C:\Users\SkyD\AppData\Local\SettingTest\SettingTest.vshost.exe_Url_ffofch2tvz5bil2xbhdayqbnqwppy2ce\1.0.0.0”这个目录中找到了配置文件(user.config),这是其描述的配置信息:
结语
虽然settings无法实现对一些复杂类型及自定义类型的支持,但是在多数情况下,用它来存储程序配置已是绰绰有余了,在够用的前提下,不要重复造轮子啦。
关于关于应用配置文件的种种和关于应用配置文件的种种说法的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于AUTOSAR-关于配置文件的思考、c# – ASP.Net配置文件:设置和使用配置文件字段时遇到困难、C# 使用配置文件配置应用、C# 如何使用配置文件保存应用程序里的配置数据的相关信息,请在本站寻找。
本文标签: