- WCF技術剖析(卷1)
- 蔣金楠
- 592字
- 2018-12-27 11:32:40
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,幫助我們輕松地實現端口的共享。接下來就討論這兩種不同的端口共享解決方案。
推薦閱讀
- Raspberry Pi for Python Programmers Cookbook(Second Edition)
- Java軟件開發基礎
- SSM輕量級框架應用實戰
- Python機器學習經典實例
- Java 9模塊化開發:核心原則與實踐
- C語言程序設計
- C++從入門到精通(第5版)
- Java并發編程之美
- Mastering Docker
- 3ds Max印象 電視欄目包裝動畫與特效制作
- Arduino可穿戴設備開發
- Python商務數據分析(微課版)
- Practical Maya Programming with Python
- Android從入門到精通
- Building Scalable Apps with Redis and Node.js