WCF服務佈屬(一) - 佈署於IIS伺服器

摘要:WCF服務佈屬(一) - 佈署於IIS伺服器

這篇文章主要是要向大家說明,如何把[WCF服務程式庫專案]佈署至IIS Server上面。開始之前我假設了你已經自行開發了WCF服務組件,若您沒有自己的WCF服務組件也可以使用我的作為參考。

這邊我自己做了一個簡單的WCF服務,內容大致上如下:
定義了兩個ServiceContract服務合約,HelloWorld及GetAllCar。
自訂Car類別
實做HelloWorld及GetAllCar。

請在方案總管 -> 你的專案上面按下滑鼠右鍵 -> 加入 -> 新增項目 -> 新增一個文字檔並將其命名為MyWCFService.svc,接著在MyWCFService.svc加入下面的定義:

接著用同樣的步驟加入一個Web組態檔(Web.Config),並於組態檔中加入下面的定義:

現在要跟大家簡單說明一下上面組態的定義內容

所有有關WCF Service的設定都會在放<system.serviceModel></system.serviceModel>區塊之中,<services></services>區塊則是有關服務內容的定義,<endpoint>主要是設置服務端點的繫結、合約和位址屬性,以用於公開服務,其中endpoint內容包括下列三者:

address 端點位址的字串。位址可以指定為絕對或相對位址,如果沒有設定位址,會將基底位址假設為該端點的位址,預設為空字串。
binding WCF的傳輸通訊協定
contract 指這個端點要公開的合約字串。
 
<serviceBehaviors><serviceMetadata>區塊主要是設定WCF服務中繼資料發佈的開啟。WCF預設情況下會關閉中繼資料(Metadata)的發佈功能,為了讓用戶端能夠存取中繼資料,因此我們必須手動將中繼資料發佈功能開啟。
httpsGetEnabled表示服務使用 HTTP/Get 進行中繼資料擷取,如果這個屬性為false則會忽略?wsdl

※如果沒有開啟中繼資料發佈功能,當您瀏覽WCF服務時會看到下面這個訊息

 現在我們要將WCF服務發佈至IIS SERVER,接著將其轉換為應用程式。

1.開啟IIS Manager,找到發佈過去的目錄(MyWCFService),選擇[轉換成應用程式]

2. 出現[新增應用程式]視窗,請按下確定即可。

3.設定完成,現在打開瀏覽器並輸入http://localhost/MyWCFService/MyWCFService.svc,來看看是否有正常運作。如果你看到以下畫面表示WCF已經成功掛載於IIS,當然你也可以在結尾加上?wsdl觀看其中繼資料。

現在我們要測試WCF服務是否可成功被Clinet端應用,首先必須開啟[WCF 測試用戶端工具],這個工具的存放路徑在C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\WcfTestClient.exe
 
1.開啟WCF 測試用戶端工具,並於我的服務專案上按下滑鼠右鍵,選擇新增服務。

2.新增服務視窗出現後,請輸入端點位置並按下確定。

3.稍待一下WCF 測試用戶端工具就會偵測到端點上的服務。

4.請點選兩下HelloWorld並按下叫用實際運作HelloWorld方法,我們可以看到所回應的資料就是當初所設定的值。

 5.請點選兩下GetAllCar並按下叫用實際運作GetAllCar方法,觀察回傳結果。

以上就是WCF服務掛載於IIS的簡易說明,下次我將告訴大家WCF的其他佈署方法。