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