昨天抽空寫了一個wcf的創建和宿主程式的創建文章,下麵也有很多園友給了評論,在此謝謝大家給了我繼續記錄我的摸爬滾打之路信心……抱拳! 上次的文章《我的WCF摸爬滾打之路(1)》中寫到,在測試wcf例子的時候遇到很多稀奇古怪的異常,準備列個專題寫的。無奈學習不深,實在不敢潦草為之。今天就隨便說說吧!說 ...
昨天抽空寫了一個wcf的創建和宿主程式的創建文章,下麵也有很多園友給了評論,在此謝謝大家給了我繼續記錄我的摸爬滾打之路信心……抱拳!
上次的文章《我的WCF摸爬滾打之路(1)》中寫到,在測試wcf例子的時候遇到很多稀奇古怪的異常,準備列個專題寫的。無奈學習不深,實在不敢潦草為之。今天就隨便說說吧!說的不到位的地方,還望有緣人海涵。多多指點,共同學習,共同進步。
一般在測試這些技術的時候,你遇到的問題,在網上搜搜大多也能解決問題。因為我也是站在別人的肩膀上學習的。其實你別把wcf這種通信的技術想多有多麼複雜(我僅僅只是說一些一般應用中哈,當然玩深入的話,任何一個技術都感覺深不可測。勿噴)。我理解的wcf就是把實現介面的服務暴露出來供我使用而已。附上一個簡單的理解圖:
一、簡單講講客戶端的的配置文件吧,客戶端的配置文件當你添加服務引用後會自動生成config文件中的內容。
1 <system.serviceModel> 2 <bindings> 3 <netTcpBinding> 4 <binding name="NetTcpBinding_IService1"> 5 <security mode="None" /> 6 </binding> 7 </netTcpBinding> 8 </bindings> 9 <client> 10 <endpoint address="net.tcp://localhost:13141/Service1" binding="netTcpBinding" 11 bindingConfiguration="NetTcpBinding_IService1" contract="ServiceReference1.IService1" 12 name="NetTcpBinding_IService1" /> 13 </client> 14 </system.serviceModel>View Code
<bindings>
//這個節點就是你wcf的綁定方式
//security安全模式
</bindings>
<client>
//wcf訪問地址(address,wcf的埠號,ip,和你的服務(實現介面的那個類))
//wcf的契約(contract,就是你的添加服務引用後的Reference.cs文件中有個configurationNme屬性)
</client>
二、wcf宿主程式在伺服器上運行的註意事項
2.1我的測試環境是windowsServer2012 R2
2.2我的宿主程式是控制台程式,當我直接運行編譯好的exe文件時,出現下列錯誤。大致意思是說當前用戶沒有許可權運行。右鍵以管理員身份運行正常。
2.3有的網路環境可能需要讓管理員跟你開放埠,不然的話是無法訪問你的wcf服務的
2.4宿主程式運行正常,客戶端是否就能正常連接呢?試試看。會提示你無法找到服務,這有可能是你的伺服器防火牆起了作用,此時你要的做的是在防火牆中添加入站規則,將管理員給你開放的埠添加進去。送佛送到西直接上圖如何添加入站規則吧。
1.進入控制面板,找到windows防火牆
2.進入高級設置
3.選擇入站規則,點擊new rule
4.選擇port,點擊next
5.選擇 Specific local ports,輸入你的埠(wcf的埠)
6.選擇允許鏈接
7.全部選中規則應用時間
9.便於管理輸入規則名稱。例如:InWcfRule
點擊finish即可,經過測試訪問沒問題了。
另外註意的是服務端和客戶端的配置中的安全模式都置為None
【轉載註明出處!謝謝】