WCF 中wsHttpBinding配置實例程序


WCF 中wsHttpBinding配置實例程序

    這兩天接觸到WCF技術,覺得有必要對一些遇到過的不大清楚的問題進行記錄。既為方便后面自己對相關問題的查漏補缺,也希望能夠有需要的人提供一點幫助。

 

1 介紹

介紹了WCF程序中使用地址綁定的wsHttpBinding方式實例。

2 背景

在WCF技術中,WCF Service在服務器端發布之后,客戶端client鏈接服務器進行服務接口調用有以下四種方式:

  • HTTP:常見的http方式連接,類似於網站傳輸方式;
  • TCP:使用TCP協議實現本地網絡與遠程服務器之間的鏈接,比HTTP方式高效,支持安全控制;
  • Name Pipe:命名管道技術,是用於在本機的不同進程之間的通信;
  • MSMQ:(Microsoft Message Queue,微軟消息隊列),一種可靠消息排隊技術,允許應用程序發送的消息通過隊列路由到達目的地。

Figure 1 WCF Service與Client的連接通信方式[1]

圖1顯示了WCF Service在服務端與各Client的通信連接方式。

[1] 引自《Beginning Visual C# 2010》,Chatper 26, page 902.

3 代碼

    在Visual Studio 2010下創建。

首先,第一個例子是使用wsHttpBinding,然后使用控制台Console應用程序作為Host及Client,其工程結構圖如下:

Step 1:建立WCF Service Library工程,WcfSericeLib,VS會自動生成接口文件IService1.cs及類實現文件Service1.cs。

Step 2: 分別創建Console Application工程ConsoleHost和ConsoleClient。

在App.config文件中,我們可以看到以下配置:

從中我們可以看到,其實這里默認使用了wsHttpBinding,此時程序是可以編譯運行的。但是本程序演示的目的是將WCF Service寄宿到ConsoleHost中,讓ConsoleHost啟動服務,然后通過ConsoleClient調用已啟用的服務。

Step 3:將WcfServiceLib中的App.config文件剪切到ConsoleHost中,並在ConsoleHost中引入WcfServiceLib.dll.

Step 4: ConsoleHost中加入System.ServiceModel庫,更改Program.cs文件如下:

這時,將ConsoleHost設為啟動項目,就能將Service服務啟動成功。

Step 5:先在ConsoleHost工程Debug目錄下將ConsoleHost.exe運行,能夠看到Service1 Started的啟動信息。 然后在ConsoleClient中Add Service Reference,將ConsoleHost中App.config中的baseAddress復制到地址欄中,可以查找到當前Service。如下圖所示:

上述步驟完成后,在ConsoleClient中會自動生成app.config的配置文件,具體見代碼。

Step 6:更改ConsoleClient program.cs,如下:

最后,先運行ConsoleHost.exe啟動Service的情況下,再運行ConsoleClient.exe,可得到如下結果:

至此,該示例完成。

整個工程源代碼下載:WCFDemo_wsHttpBinding.zip

4 討論

    本例中,只是將WCF Application Library中的服務Handle到Console中,這樣的話,ConsoleHost可為遠程服務器,ConsoClient可為各不同地域的客戶機。

5 版權

    在注明出處的情況下,可自由進行復制傳播。

    參考文獻:

    《Beginning Visual C# 2010》

    http://blog.csdn.net/fangxing80/article/details/6106228

6 關於作者

Ray Lei,正處於積累學習階段的C++/C#、移動平台開發者。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM