记录一些在用wcf的过程中走过的泥巴路 【第一篇】

简介:

   自从转移战场之后,比以前忙多了,博客也没能及时跟上,原本准备继续mvc系列,但是在那边技术比较陈旧还没能用得上,话说有3年没接触这玩意了,东西也

都忘了差不多了,既然再次接触,我也就继续温习温习,记录下在用wcf的过程中走过的一些奇葩路,好了,这篇看看第一个问题。

      首先wcf中有一个概念叫做“服务是端点的集合”,也就是说你可以在app.config下的 serviceModel中定义几个endpont,就比如下面的代码。

那定义几个endpoint有什么好处呢?如果这样的话wcf的servicehost类就可以监听这两个端口,一个给“异构系统”用的,比如java,php。。。还有一个那就是msmq,

这个就可以在.net系统中互通了,好了,有个这个概念之后,我遇到了一个场景就是。

玩wcf必须支持集群,这样就方便我们后续扩展,就比如我右边部分的话,有3个wcf,中间就是一个router服务,里面就存放这三个endpoint,我的客户端只需要连

接router服务就好了,然后我的router服务将三个endpoint捞出来,随机或者取模的方式拿出一个endpoint,这样就起到一个地址转向的作用,如下图:

然后问题就卡在这个地方了。如何取出这几个endpoint节点。。。因为我需要里面的address地址,由于自己才疏学浅,用了最笨的方法,将app.config 作为xml,

然后我再用xmlDocument来读取。。。丑代码就不发了,但是下午的时候我就在想,wcf的代理类,它是怎么读到endpoint的呢???我敢肯定它绝对不是用

xmlDocument的。然后一个想法就来了,用ILSpy调试一下proxy代码,说干就干。

 

当我找到了(ClientSection)ConfigurationHelpers.UnsafeGetSection(ConfigurationStrings.ClientSectionPath); 方法的时候,我顿时兴奋了,因为我知道这

个离我的答案不远了。。。然后就一股劲的看这个UnsafeGetSection方法,终于的终于。。。。原形毕露。。。。

当我试出来之后,我就快速的coding了一下,,果然。。。

 

结果可能很简单,不过这可能更像我的探索之旅,不过其中的喜悦只有当事者明白,这种探索估计在职业生涯中都不会忘记~~~

相关文章
|
存储 分布式计算 网络协议
大数据Spark Streaming入门
大数据Spark Streaming入门
387 1
|
存储 缓存 算法
内存系列学习(四):Cache和Write Buffer一般性介绍
内存系列学习(四):Cache和Write Buffer一般性介绍
1294 0
|
物联网 开发工具 Android开发
《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》学习笔记——HarmonyOS产生的背景
HarmonyOS是华为自主研发的分布式操作系统,旨在应对美国“实体清单”带来的技术封锁。2019年首次亮相,它不仅支持手机、平板等多终端设备,还通过统一的软件系统解决了不同设备间的体验割裂问题。HarmonyOS强调全场景智能互联,提升设备间的安全性和协同能力。其商用版本基于OpenHarmony开源项目开发,而HarmonyOS NEXT则是去除了AOSP代码的纯自研版本,代表了未来发展方向。
995 12
|
开发框架 前端开发 JavaScript
循序渐进VUE+Element 前端应用开发(15)--- 用户管理模块的处理
循序渐进VUE+Element 前端应用开发(15)--- 用户管理模块的处理
|
Java 编译器 Kotlin
Kotlin 中编写静态方法的方式详解
Kotlin 中编写静态方法的方式详解
801 0
|
SQL Java Maven
hive-3.0.0源码编译详解
hive-3.0.0源码编译详解
302 0
|
安全 网络安全 网络虚拟化
有配置云防火墙,那么防火墙自然无法发挥其防护功能
有配置云防火墙,那么防火墙自然无法发挥其防护功能
233 2
|
人工智能 文字识别 NoSQL
1.为什么要做风控?
目前我们业务有使用到非常多的AI能力,如ocr识别、语音测评等,这些能力往往都比较费钱或者费资源,所以在产品层面也希望我们对用户的能力使用次数做一定的限制,因此风控是必须的!
452 0
1.为什么要做风控?
|
存储 缓存 Oracle
【数据库设计与实现】第1章:空间管理与数据布局
空间管理与数据布局 设计原则数据库设计数据布局和空间管理应当考虑哪些因素呢?又有哪些设计原则?本章先提出问题,看有哪些因素要考虑,然后选取Oracle和MySQL这2款最流行的数据库,看看它们是如何进行空间管理的。我们先看看有哪些因素要考虑:数据最终要反映到持久设备上,空间管理首先要考虑持久设备(如磁盘)的物理特性,考虑如何组织数据才能最大化地发挥存储设备的效率;如何协调平衡多样化的数据,如超大的
【数据库设计与实现】第1章:空间管理与数据布局