Quantcast
Channel: VITO小舖 - ASP.NET
Viewing all articles
Browse latest Browse all 41

建立 WCF 服務類別庫

$
0
0

建立 WCF Service Library 專案

建立 Service Library

1.建立WCF Service Library專案

這個專案範本預設會幫我們加入:IService1.cs、Service1.cs、和App.config。 可以依以下步驟更改成我們想要的名稱。

2.替服務介面更名

3.在介面中加入新的服務方法

當加入服務方法時,必須先定義一個 Contract, 用來說明服務包含哪些 Operation, 要使用哪種 Message Pttern。 在服務合約中至少要有一個標示為 OperationContract的方法,否則載入服務時會有例外。

4.替服務類別更名,並實作 ICalcService 介面

5.按F5執行

底下是精簡過的ICalcService.cs程式碼。 包含一個 ICalcService 介面和 CompositeType 類別。 其中 ICalcService 介面套用屬性 ServiceContract,表示它是定義服務合約的介面,裡面就是用來定義要提供給用戶端呼叫的操作。 而 CompositeType 類別則套用屬性 DataContract,表示它是用來定義呼叫操作時所需傳遞的資料型別。


[ServiceContract]
public interface ICalcService
{
// TODO: 在此新增您的服務作業
[OperationContract]
string Add(int a, int b);
}

[DataContract]
public class CompositeType
{
bool boolValue = true;
string stringValue = "Hello ";

[DataMember]
public bool BoolValue
{
get { return boolValue; }
set { boolValue = value; }
}

[DataMember]
public string StringValue
{
get { return stringValue; }
set { stringValue = value; }
}
}

變更預設的繫結類型

當建立 WCF Service 時,預設會使用 wsHttpBinding 這個繫結類型, 下面示範如何建立一個 basicHttpBinding 繫結類型,並將變更服務的繫結類型。

1.開啟組態設定工具

2.將預設的 wsHttpBinding 修改成 basicHttpBinding

3.新增繫結組態 (BindingConfiguration)

3.1 點選新增繫結組態

3.2 選取 basicHttpBinding 繫結類型

3.3 設定 SendTimeOut 為 10 分鐘

3.4 CTRL+S 儲存

4. 設定服務的繫結組態

將服務的 BindingConfiguration 設定成上一步驟新增的繫結組態

5.F5, Run,可以正確執行運算

備註:

WSHttpBinding 與 BasicHttpBinding 類似,不過前者提供更多的 Web 服務功能。 它使用 HTTP 傳輸並提供訊息安全性,如同 BasicHttpBinding,不過它也提供交易、可靠傳訊以及 WS-Addressing。

裝載 WCF 服務

上面範例中,我們已經建立好 WCF service。 contract 的定義是放在 ICalcService 介面中, contract 的實作則放在 CalcService 類別裡。 而且已經將 endpoint 的繫結組態由預設的 wsHttpBinding 變更成 basicHttpBinding。 底下是 App.config 所顯示的資訊。




contract="TestWcfServiceLibrary.ICalcService">












WCF 服務必須運行於 host process 中,這個 host process 可以是 IIS 、WAS、Windows 服務、或你自己開發的 .NET 應用程式(即所謂的 self-hosting)。運行於 IIS 和 WAS 環境都可享有生命週期控制的優點,這裡要示範的是將剛才建立的 WCF 服務部署到 IIS。

  1. 在 IIS 中建立一個網站,指定一個連接埠,如 8060 ,實體路徑指向一個新建立的空資料夾。 例如:D:\myProject\WCF_Service。 並將驗證選項設定成「啟用匿名存取」。
  2. 回到 VS2008,在方案總管中的專案名稱上點右鍵,選 Publish,參考下圖設定:

  3. 部署完成後,到實際部署的資料夾中看一下產生了哪些檔案。你應該會看到:

    PS.

    其實發行所做的事情,就是新增一個 .svc 檔,並指定服務的類別名稱。如下所示內容:


    <%@ ServiceHost Service="TestWcfServiceLibrary.Service1" %>
  4. 開啟瀏覽器測試一下:網址輸入 http://localhost:8060/TestWcfServiceLibrary.Service1.svc ,若一切順利,應該會看到類似這樣的畫面:

撰寫 WCF 用戶端程式

寫一個簡單的用戶端程式來測試 WCF 服務。步驟如下:

  1. 在測試專案中,在專案的右鍵選單中,執行「加入服務參考」,並完成以下設定:


  2. 編輯測試程式碼:

    protected void btnConnectWCFService_Click(object sender, EventArgs e)
    {
    myCalcService.CalcServiceClient wcf_service;
    using (wcf_service = new myCalcService.CalcServiceClient())
    {
    string result = wcf_service.Add(5, 10);
    myDebug.ResponseBR(result);
    }
    }
  3. 執行驗證。

Viewing all articles
Browse latest Browse all 41

Trending Articles