官术网_书友最值得收藏!

2.2.1 端口共享在WCF中的意義何在?

在一般的網絡環境中,為了盡可能避免網絡攻擊,都會通過防火墻將絕大部分的端口進行屏蔽,僅僅保留那些常用的網絡服務所用的端口,或者僅為某一個類應用保留少量的端口。總而言之,我們不能保證每個跨防火墻通信的應用都具有一個唯一的端口,他們只能共享一個或少量的幾個端口。

在Intranet內部,為了保證部署于局域網內的其他計算機的網絡應用能夠與本機進行正常通信,通常會在本機的防火墻中預留少數幾個可用的端口。Intranet內部的主機之間可以使用這些預留的端口通過相應的傳輸協議,比如TCP、HTTP、Named Pipe等,進行通信。而對于處于Internet和本地網絡之間的防火墻,通常只保留80|443端口,保證基于HTTP|HTTPS的網絡通信能夠正常進行。所以,無論是基于Intranet還是Internet,無論是采用何種傳輸協議,端口共享都具有重要的現實意義。

對于WCF來講,當我們將某個服務寄宿于一個進程中,實際上就是通過該進程監聽和處理來自客戶端的Socket請求。在一般情況下,一個端口被一個監聽進程獨占使用,也就是說,如果主機上部署了若干服務,而這些服務寄宿于不同的應用程序中,對于這種寄宿應用程序來說,監聽的端口必須不同。

所以,我們需要通過特殊的途徑實現基于WCF寄宿的端口共享。采用不同的傳輸協議,有不同的解決方案,對于HTTP協議,可以通過IIS的寄宿方式實現端口的共享,對于TCP,.NET Framework 3.0提供了一個特殊的Windows服務,Net.TCP Port Sharing Service,幫助我們輕松地實現端口的共享。接下來就討論這兩種不同的端口共享解決方案。

主站蜘蛛池模板: 马尔康县| 通州市| 三明市| 敦煌市| 洱源县| 开原市| 枣庄市| 巩留县| 信阳市| 乌拉特中旗| 松江区| 石城县| 华安县| 泌阳县| 兰溪市| 河北区| 西宁市| 葫芦岛市| 天等县| 博罗县| 广南县| 鄄城县| 九龙城区| 湟源县| 雅安市| 封开县| 普兰店市| 祁连县| 渝北区| 淮北市| 民乐县| 纳雍县| 新沂市| 文成县| 普格县| 永和县| 武胜县| 河北区| 黄浦区| 隆回县| 张北县|