如何修改config?
程序员文章站
2022-04-08 19:29:39
这几天在做给WCF做加密传输,结果当然是实现了加密传输,同时也发现了一个问题,有没有大神来答疑解惑一下. 事情是这样的. 在客户端的配置中,需要加入一个behavior,在config文件中是这样的. 按理说,任何在config的配置,都是可以写代码来实现的.这里写代码实现,我觉得又可以分两种: 因 ......
这几天在做给wcf做加密传输,结果当然是实现了加密传输,同时也发现了一个问题,有没有大神来答疑解惑一下.
事情是这样的.
在客户端的配置中,需要加入一个behavior,在config文件中是这样的.
<behaviors> <endpointbehaviors> <behavior name="wshttpbindingbehavior"> <clientcredentials > <servicecertificate > <authentication certificatevalidationmode="none" /> </servicecertificate> </clientcredentials> </behavior> </endpointbehaviors> </behaviors>
按理说,任何在config的配置,都是可以写代码来实现的.这里写代码实现,我觉得又可以分两种:
- 写代码修改config的配置
- 写代码构造wcf的client.
因为我遇到这个需要修改的地方,client已经部署了几千套,要一个一个去修改client的配置,是很麻烦而且不科学的一件事情.幸好,程序架构能自动升级,只需要在升级的时候,用代码将behavior写到配置文件就可以了.听起来很完美.
可是呢,要把上面这段配置自动加到config中,我却找了几天都没有实现.情况如下:
- 利用configuration类,增加behaviors节点,未到修改方法
- 利用代码修改在构造client的时候,只有通过system.servicemodel.clientbase<t>这种方式来修改,下面这段代码就可以
client.clientcredentials.servicecertificate.authentication.certificatevalidationmode = system.servicemodel.security.x509certificatevalidationmode.none;
3.可是现有代码框架不是用的clientbase<t>,而是channelfactory<t>()方法创建的通道, channelfactory<t>()没有找到增加这个behaviors的方式.修改channelfactory变成clientbase,现在这项目不可行,修改太大.
4.当然,还有一种方法就是把config文件当成xml文件来处理,这是最后的大招了.暂时不想用.
不知道能不能被人看到,反正每次都说我不能上首页.
上一篇: 你不是喜欢喂饭吗?让你喂个够
下一篇: eclipse安装maven插件
推荐阅读
-
atitit查询表修改表字段没反应--解锁锁定的表
-
求一段正则,该如何处理
-
我要如何在HTML中建立<form>数组?_PHP教程
-
PHP中如何实现常用邮箱的基本判断_PHP
-
PHP版本升级到7x后wordpress的一些修改及wordpress技巧
-
SQL Server默认1433端口修改方法_MySQL
-
数据库 - php后台向leancloud添加数据时,如何设置id为自增涨?
-
$_SERVER['HTTP_REFERER']这个如何用
-
javascript - 如何匹配"height:12px;width:56px;background:#fff;"中间的"width:56px;"?
-
正则如何匹配Theme/Home/images/logo.jpg的logo.jpg?