热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

clientconfig.json的简单介绍

本文目录一览:1、如何更改config.json配置

本文目录一览:


  • 1、如何更改config.json配置


  • 2、服务器参数配置文件config.json该怎么设置


  • 3、网站serverConfig.json加载失败


  • 4、概念:动态准入控制


  • 5、config.json是什么文件

如何更改config.json配置

代码如下:请导入 System.XML命名空间

string file = Server.MapPath(@"~\web.config");

XmlDocument xmlDoc = new XmlDocument();

xmlDoc.Load(file);

string s1 = "aaa";

string s2 = "bbb";

string h = "ccc";

string user = "ddd";

string pass = "eee";

XmlNodeList nodeList = null;

nodeList = xmlDoc.SelectSingleNode("configuration//connectionStrings").ChildNodes;

//遍历所有子节点

foreach (XmlNode xn in nodeList)

{

//将子节点类型转换为XmlElement类型

XmlElement xe = xn as XmlElement;

if (xe.Name == "add")

{

if (xe.GetAttribute("name") == "acountConnectionString")

{

xe.SetAttribute("connectionString", s1);

}

if (xe.GetAttribute("name") == "mailaddress")

{

xe.SetAttribute("connectionString", s2);

}

}

}

nodeList = xmlDoc.SelectSingleNode("configuration//system.net//mailSettings//smtp").ChildNodes;

foreach (XmlNode xn in nodeList)

{

//将子节点类型转换为XmlElement类型

XmlElement xe = xn as XmlElement;

if (xe.Name == "network")

{

xe.SetAttribute("host", h);

xe.SetAttribute("userName", user);

xe.SetAttribute("password", pass);

break;

}

}

xmlDoc.Save(file);

但实际上通过代码修改web.config的操作微乎其微

1. web.config的修改可能会导致session等服务器变量的丢失

2. 如果你的页面是发布在IIS下面,要通过页面修改web.config,必须给web.config这个文件添加 Network service (IIS6)或 ASPNET (IIS)用户的写权限,这在实际操作中是不可想象的

服务器参数配置文件config.json该怎么设置

代码如下:请导入 System.XML命名空间

string file = Server.MapPath(@"~\web.config");

XmlDocument xmlDoc = new XmlDocument();

xmlDoc.Load(file);

string s1 = "aaa";

string s2 = "bbb";

string h = "ccc";

string user = "ddd";

string pass = "eee";

XmlNodeList nodeList = null;

nodeList = xmlDoc.SelectSingleNode("configuration//connectionStrings").ChildNodes;

//遍历所有子节点

foreach (XmlNode xn in nodeList)

{

//将子节点类型转换为XmlElement类型

XmlElement xe = xn as XmlElement;

if (xe.Name == "add")

{

if (xe.GetAttribute("name") == "acountConnectionString")

{

xe.SetAttribute("connectionString", s1);

}

if (xe.GetAttribute("name") == "mailaddress")

{

xe.SetAttribute("connectionString", s2);

}

}

}

nodeList = xmlDoc.SelectSingleNode("configuration//system.net//mailSettings//smtp").ChildNodes;

foreach (XmlNode xn in nodeList)

{

//将子节点类型转换为XmlElement类型

XmlElement xe = xn as XmlElement;

if (xe.Name == "network")

{

xe.SetAttribute("host", h);

xe.SetAttribute("userName", user);

xe.SetAttribute("password", pass);

break;

}

}

xmlDoc.Save(file);

但实际上通过代码修改web.config的操作微乎其微

1. web.config的修改可能会导致session等服务器变量的丢失

2. 如果你的页面是发布在IIS下面,要通过页面修改web.config,必须给web.config这个文件添加 Network service (IIS6)或 ASPNET (IIS)用户的写权限,这在实际操作中是不可想象的

网站serverConfig.json加载失败

网络连接失败。网站serverConfig.json对于网络的需求是非常大的,只要该网站的网络连接失败就会导致该网页加载失败,用户可以通过更换新的网络来回复该网站的加载。

概念:动态准入控制

Admission Controllers(准入控制器) 中有两个特殊的 controllers : MutatingAdmissionWebhook 和 ValidatingAdmissionWebhook .

MutatingAdmissionWebhook 会 依次调用 匹配请求的 MutatingWebhookConfiguration

ValidatingAdmissionWebhook 并行调用 匹配请求的 ValidatingWebhookConfiguration

Admission Webhooks 就是 MutatingWebhookConfiguration 和 ValidatingWebhookConfiguration 中指定的 service

Admission Webhooks 实质上是集群的 控制面 , 所以在编写和部署的时候要及其小心. 需要通过 k8s e2e test

MutatingWebhookConfiguration 和 ValidatingWebhookConfiguration 中定义 rules 和 clientConfig , 以及 admissionReviewVersions 、 sideEffects 、 timeoutSeconds

创建 Configuration 后,系统将花费几秒钟来接受新配置

然后当 apiserver 接收到 匹配任意rules的请求时 , apiserver 就会发送 admissionReview 请求 给 clientConfig 指定的 webhook

admissionReview 请求 就是 apiserver 发送给 webhook server 的 POST 请求 , Content-Type: application/json , JSON body 是 apiVersion: admission.k8s.io/? kind: AdmissionReview 对象

可以在 Configuration 中通过 admissionReviewVersions 指定可接受的 apiVersion , 例如 admissionReviewVersions: ["v1", "v1beta1"]

apiserver 使用可接受的versions列表中的第一个apiserver支持的version,

如果没有apiserver支持的version, 那么 Configuration 不会被允许创建.

如果 Configuration 是之前创建的, 而现在 apiserver 不支持其声明的versions了,那么请求会按webhook的 failure policy 处理

AdmissionReview Json body 示例:

然后 webhook server 返回 HTTP状态码200 , Content-Type: application/json , JSON body 是 apiVersion: admission.k8s.io/? kind: AdmissionReview 对象, AdmissionReview 对象 的 apiVersion 和 接收到的对象的 apiVersion 相同

webhook server 返回的 Json body 至少应包含如下2个字段:

当拒绝请求时, webhook server 可以自定义返回给用户的 http code 和 message , 如下所示:

当允许请求时, mutating webhook 可能会修改传入的对象. 这通过 response 中的 patch 或 patchType 字段表示.

当前支持的 patchType 只有 JSONPatch

对于 patchType: JSONPatch , patch 字段内容为 JSON patch operations 列表, 并使用 base64-encoded , 如下例所示:

通过创建 MutatingWebhookConfiguration or ValidatingWebhookConfiguration API对象注册 admission webhook .

Configuration 的 name 必须是有效的 DNS subdomain name

每个 Configuration 可以包含 一个或多个webhooks, 每个webhook需要指定唯一的名称

webhook 中定义如下的事情:

(1) rules : 用于如何匹配请求

包括 operations 、 apiGroups 、 apiVersions 、 resources 、 scope

示例:

(2) objectSelector : 用于如何匹配请求

自 v1.15+ 之后, webhooks 可以可选地使用 objectSelector 限制哪些请求被拦截, 它基于对象的 labels

newObject 和 oldObject 中有一个匹配了 objectSelector 都认为是 匹配

null object (例如 create operation 中的 oldObject 和 delete operation 中的 newObject ) 被认定为不匹配

同样, 不可能包含 label 的对象(例如 DeploymentRollback 或 PodProxyOptions )也被认定为不匹配

示例:

(3) namespaceSelector : 用于如何匹配请求

webhooks 可以可选地使用 namespaceSelector 限制哪些请求被拦截, 它基于对象的 namespace 的 labels

对 Namespace 对象的操作也会被考虑匹配, 使用其 .metadata.labels

如果对象是 cluster scoped resource 则该限制对其无效

示例:

(4) matchPolicy : 用于如何匹配请求

因为 apiserver 允许使用多个 apiGroups 和 apiVersions 操作对象, 例如 Deployment 可以通过 extensions/v1beta1 、 apps/v1beta1 、 apps/v1beta2 和 apps/v1 创建

如果 webhook 只指定了 apiGroups:["apps"], apiVersions:["v1","v1beta1"] , 那么 extensions/v1beta1 的请求就不会被认定为匹配

自 v1.15+ 之后, webhooks 可以可选地使用 matchPolicy 定义其 rules 如何匹配请求

matchPolicy 的枚举值有

顾名思义, 如果 webhook 指定了 matchPolicy: Equivalent , 则上面的示例中,请求会被认定为匹配

示例:

(5) clientConfig : 用于如何指定 webhook server

(5.1)使用URL指定webhook server

url的scheme 必须是 https

尝试使用 user 或 basic auth (例如 user:pwd@ )是不被允许的.

Fragment ( #... ) 和 query parameters ( ?... ) 是不被允许的

示例:

(5.2)使用Service reference指定webhook server

示例:

(6) sideEffects

webhooks 一般只操作 AdmissionReview 中的内容.

但是有一些 webhooks 需要执行 out-of-band changes , 即 sideEffects

sideEffects 的枚举值有:

如果使用 apiVersion: admissionregistration.k8s.io/v1 , 则 sideEffects 的枚举值只有 None 和 NoneOnDryRun

示例:

(7) timeoutSeconds

如果超时, 请求按 failure policy 处理

如果使用 apiVersion: admissionregistration.k8s.io/v1 , 则 timeoutSeconds 的默认值为 10s

示例:

(7) reinvocationPolicy

(8) failurePolicy

failurePolicy 定义 不识别的错误和超时错误 如何被处理.

failurePolicy 的枚举值包含:

示例:

apiserver 提供了监控 admission webhooks 行为的方法. 这些监控机制帮助集群管理员回答如下问题:

如果不指定 ClientAuth , 则默认为 NoClientAuth , 这意味着 webhook server 无法认证其 clients , 也就是 apiserver .

如果你需要 mTLS或其他方式认证 clients , 你可以配置 apiserver 使用 basic auth 、 bearer token 或 cert 向 webhook server 认证自己为合法的 client

要完成这个配置,需要 3个步骤:

config.json是什么文件

config.json文件用于工程配置初始化,在程序运行之前配置好。

以下是 cocos2d-x lua 工程的 config.json的文件实例:

{

"init_cfg":{

"isLandscape": true,

"isWindowTop": false,

"name": "CocosLuaGame",

"width": 960,

"height": 640,

"entry": "src/main.lua",

"consolePort": 6010,

"uploadPort": 6020,

"debugPort": 10000,

"forwardConsolePort": 10089,

"forwardUploadPort": 10091

},

"simulator_screen_size": [

{

"title": "iPhone 3Gs (480x320)",

"width": 480,

"height": 320

},

{

"title": "iPhone 4 (960x640)",

"width": 960,

"height": 640

},

....

]

}

详细解释如下:

"init_cfg"

"isLandscape"

布尔类型

横竖屏配置,如果为true为横屏,如果为false为竖屏

"isWindowTop"

布尔类型

窗口置顶配置,如果为true则窗口默认置顶,反之默认不置顶

"entry"

字符串类型

脚本启动入口文件相对工程根目录的文件路径,如:"src/main.lua"

"name"

字符串类型

工程名,显示在窗口标题中

注:这个参数只在桌面系统下生效

"width"

正整型

窗口宽

注:这个参数只在桌面系统下生效

"height"

正整型

窗口高

注:这个参数只在桌面系统下生效

"consolePort"

正整型

console端口

"uploadPort"

正整形

接收IDE上传文件的端口

"debugPort"

正整型

调试端口

"forwardConsolePort""

正整形

Android ADB 模式调试时,将这个端口映射到 Android 设备的 consolePort 上

"forwardUploadPort""

正整形

Android ADB 模式调试时,将这个端口映射到 Android 设备的 uploadPort 上

注意事项:所有的端口配置都只在桌面平台下生效。


推荐阅读
author-avatar
tina田小甜Shirley
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有