当前位置: 移动技术网 > IT编程>开发语言>.net > 如何修改config?

如何修改config?

2019年03月26日  | 移动技术网IT编程  | 我要评论

这几天在做给wcf做加密传输,结果当然是实现了加密传输,同时也发现了一个问题,有没有大神来答疑解惑一下.

事情是这样的.

在客户端的配置中,需要加入一个behavior,在config文件中是这样的.

<behaviors>

      <endpointbehaviors>

        <behavior name="wshttpbindingbehavior">

          <clientcredentials  >

            <servicecertificate >

              <authentication  certificatevalidationmode="none"  />

            </servicecertificate>

          </clientcredentials>

        </behavior>

      </endpointbehaviors>

</behaviors>

 

按理说,任何在config的配置,都是可以写代码来实现的.这里写代码实现,我觉得又可以分两种:

  1. 写代码修改config的配置
  2. 写代码构造wcf的client.

因为我遇到这个需要修改的地方,client已经部署了几千套,要一个一个去修改client的配置,是很麻烦而且不科学的一件事情.幸好,程序架构能自动升级,只需要在升级的时候,用代码将behavior写到配置文件就可以了.听起来很完美.

可是呢,要把上面这段配置自动加到config中,我却找了几天都没有实现.情况如下:

  1. 利用configuration类,增加behaviors节点,未到修改方法
  2. 利用代码修改在构造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文件来处理,这是最后的大招了.暂时不想用.

 

      不知道能不能被人看到,反正每次都说我不能上首页.

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网