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了一下,,果然。。。

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

  • 相关阅读:
    《20171122-构建之法:现代软件工程-阅读笔记》
    课后作业-阅读任务-阅读提问-5
    结队-贪吃蛇-项目进度
    《团队-爬取豆瓣Top250电影-团队-阶段互评》
    zip相关知识梳理(一)
    C++入职学习篇--代码规范(持续更新)
    C++入职学习篇--新员工入职(持续更新)
    Node.js学习之TCP/IP数据通讯
    Node.js之操作文件系统(二)
    Node.js之操作文件系统(一)
  • 原文地址:https://www.cnblogs.com/huangxincheng/p/4396284.html
Copyright © 2011-2022 走看看