zoukankan      html  css  js  c++  java
  • 记录一些在用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了一下,,果然。。。

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

  • 相关阅读:
    是否需要有代码规范
    结对同伴作业复审
    个人作业-四则运算生成
    个人博客-week7
    个人博客作业Week3
    结对编程项目总结
    个人项目总结
    个人博客作业Week2
    第二次结对作业
    个人作业3——个人总结(Alpha阶段)
  • 原文地址:https://www.cnblogs.com/huangxincheng/p/4396284.html
Copyright © 2011-2022 走看看