一、IIS部分
環境:Windows Server 2008 R2
1.安裝WAS,如下圖所示:

2.網站net.tcp協議綁定,如下圖所示:

3.網站啟用net.tcp,如下圖所示:

二、WCF代碼部分
1.DesignCaseService.svc
-
<%@ServiceHostLanguage="C#"Debug="true"Service="Web.API.Implementations.DesignCaseService"%>
2.web.config配置示例:
<system.serviceModel> <services> <service name="Web.API.Implementations.DesignCaseService" > <endpoint binding="netTcpBinding" address="" contract="Web.API.Interfaces.IDesignCaseService" /> <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange"/> <host> <baseAddresses> <add baseAddress="net.tcp://localhost/DesignCaseService"/> </baseAddresses> </host> </service> </services> <bindings> <netTcpBinding> <binding portSharingEnabled="true"></binding> </netTcpBinding> </bindings> <behaviors> <serviceBehaviors> <behavior> <!-- 非常重要 --> <!-- 為避免泄漏元數據信息,請在部署前將以下值設置為 false --> <serviceMetadata httpGetEnabled="false" httpsGetEnabled="false"/> <!-- 要接收故障異常詳細信息以進行調試,請將以下值設置為 true。在部署前設置為 false 以避免泄漏異常信息 --> <serviceDebug includeExceptionDetailInFaults="false"/> </behavior> </serviceBehaviors> </behaviors> </system.serviceModel>
3.發布服務,框中非常重要,一定要是net.tcp

4.測試服務

三、錯誤集錦
1.找不到具有綁定 NetTcpBinding 的終結點的與方案 net.tcp 匹配的基址。注冊的基址方案是 [http]。

產生原因:網站沒有配置net.tcp協議,網站默認只有http協議
解決方案:按照第一部分,配置net.tcp協議
疑問:網站正確配置了net.tcp協議,還報這個錯誤?
可能原因:端口不對,比如在IIS中配置的net.tcp協議的端口1000,可能在Visul Studio中 右鍵打開svc文件,會分配另外一個端口,比如2000,這就可能產生這個問題
解決方案:在IIS中打開svc文件
2.已嘗試創建到達不支持.Net框架的服務的通道,可能遇到HTTP終結點。需要記錄類型"PreambleAck",找到"72"
產生原因:
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
當在默認配置中啟用http的元數據時,在發布服務頁面會出現以http協議的元數據鏈接,如下圖所示:

我們使用的是net.tcp協議,而在這里顯示的卻是http協議
解決方案:
<serviceMetadata httpGetEnabled="false" httpsGetEnabled="false"/>
3.由於目標計算機積極拒絕,無法連接。
查看Net.Tcp Listener Adapter服務是否啟動
參考資料:http://www.cnblogs.com/Gyoung/archive/2012/12/11/2812555.html