记录一些在用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了一下,,果然。。。

 

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

相关文章
|
2月前
|
缓存 Java 数据库连接
随处可见的缓存思想(有补充的欢迎留言交流)
本文介绍了多种缓存技术及其应用场景,包括面向对象编程中的对象缓存、String对象池、浏览器缓存、CPU指令寄存器、数据库连接池、库表内存化、线程池、JIT即时编译器、字符串常量池以及MyBatis的一级和二级缓存,旨在提高程序的性能和效率。
38 3
|
6月前
|
算法 Java API
记录我第一次在Android开发图像处理算法的经历
记录我第一次在Android开发图像处理算法的经历
40 1
|
前端开发
前端小知识点扫盲笔记记录9
前端小知识点扫盲笔记记录9
55 0
|
前端开发 容器
前端小知识点扫盲笔记记录10
前端小知识点扫盲笔记记录10
60 0
|
前端开发
前端小知识点扫盲笔记记录14
前端小知识点扫盲笔记记录14
62 0
|
缓存 前端开发 NoSQL
关于缓存更新的一些可借鉴套路
目前随着缓存架构方案越来越成熟化,通常做法是引入「缓存」来提高读性能,架构模型就变成了这样:
关于缓存更新的一些可借鉴套路
《算法笔记知识点记录》第三章——入门模拟(2)
《算法笔记知识点记录》第三章——入门模拟(2)
《算法笔记知识点记录》第三章——入门模拟(2)
|
Java 程序员 网络安全
CoProcessFunction实战三部曲之二:状态处理
双流场景,处理一个流时如何得到另一个流的信息,或者如何将自己的信息传给另一个流的处理逻辑,本篇通过实战掌握其中关键
133 0
CoProcessFunction实战三部曲之二:状态处理
|
JavaScript
大杂烩: 踩坑记录
大杂烩: 踩坑记录
大杂烩: 踩坑记录