WCF啟用端口三步驟實現(xiàn)
WCF開發(fā)工具已經(jīng)推出就立即受到了廣大開發(fā)人員的注意。它獨特的通信功能使得開發(fā)人員能夠輕松的實現(xiàn)特定的功能需求。在這里我們將會針對WCF啟用端口的實現(xiàn)做一個詳細的介紹。#t#
在一般的網(wǎng)絡(luò)環(huán)境中,盡可能避免網(wǎng)絡(luò)攻擊,都會通過防火墻將絕大部分的端口封掉,僅僅保留那些常用的網(wǎng)絡(luò)服務(wù)所用的端口,或者為某一個類應(yīng)用保留少量的端口。IIS 使用HTTP.SYS實現(xiàn)了對80端口的共享使用,所以我們可以在IIS上部署多個應(yīng)用程序。那么我們在主機上部署多個TCP的WCF服務(wù),只有有限開放端口的時候怎么辦呢,答案就是啟用NET.TCP的端口共享服務(wù)。通過端口共享服務(wù),WCF就可以使用同一個端口部署多個服務(wù):
WCF啟用端口共享服務(wù)只需要三個步驟:
啟用 NET.TCP Port 共享服務(wù)(默認是禁用的)
WCF 服務(wù)采用TCP 協(xié)議
設(shè)置 PortSharingEnabled 屬性為 true
第一步. 啟用 NET.TCP 端口共享服務(wù)
通過“開始”-〉“控制面板”-〉“管理工具”-〉服務(wù),打開如下圖所示的“服務(wù)對話框”,然后定位到Net.TCP Port Sharing Service。
第二步:在WCF服務(wù)中使用TCP 協(xié)議
在基于TCP的WCF通信中,我們使用NetTcpBinding處理通信的所有細節(jié),這些細節(jié)中也包括端口的共享。
第三步:設(shè)置 PortSharingEnabled 屬性為 true
在NetTcpBinding中,定義了一個特殊的屬性,PortSharingEnabled,表明是否啟動端口共享機制。
你可以通過通過配置的方式來指定NetTcpBinding的PortSharingEnabled屬性達到WCF啟用端口的目的:
- < bindings>
- < netTcpBinding>
- < binding name="PortBinding" portSharingEnabled="true" />
- < /netTcpBinding>
- < /bindings>
也可以通過代碼方式配置綁定啟用
- NetTcpBinding binding = new NetTcpBinding();
- binding.PortSharingEnabled = true;
該綁定隱式允許外部進程(即承載 Net.TCP 端口共享服務(wù)的 SMSvcHost.exe)代表它來管理 TCP 套接字。以上就是對WCF啟用端口的所有步驟的介紹。