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

 

結果可能很簡單,不過這可能更像我的探索之旅,不過其中的喜悅只有當事者明白,這種探索估計在職業生涯中都不會忘記~~~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM