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