第四章 WCF託管 3

2021-09-02 15:56:59 字數 2546 閱讀 2864

[size=large][color=red]原文:[url]

[size=x-large][color=orange]windows activation service[/color][/size]

windows activation service隨著windows vista和windows server 2008一起發布的。iis7中可以啟用它,was比比起iis要強大很多,它支援http,tcp和命名管道,但是iis僅僅支援http,它可以被單獨安裝和配置。

將wcf託管在was中有很多優點,比如程序**,隔離,空閒時間管理,通用配置系統,was託管服務可以按照以下步驟進行建立。

1.wcf配置為http以外協議

2.建立was託管服務

3.建立服務的不同繫結

[b]wcf配置為http以外協議[/b]

在建立服務之前,我們需要去配置系統以便支援was,按照下面的步驟我們就可以配置was了。

1.開始->控制面板->應用程式和功能->開啟或關閉windows功能

2.點開microsoft .net framework 3.0,啟用windows communication foundation http activation和windows communication foundation non- http activation

4.執行如下命令

[b]建立was託管服務[/b]

step 1: 接下來讓我們建立乙個服務,開啟vs2008,新建->**,從模板中選擇wcf服務,並且像下列所示將位置選在http上

[img]

step 2: 建立imathservice的契約類,並且新增servicecontract屬性到介面上,operationcontract到方法宣告上。

[b]imathservice.cs[/b]

using system;

using system.collections.generic;

using system.linq;

using system.runtime.serialization;

using system.servicemodel;

using system.text;

[servicecontract]

public inte***ce imathservice

step 3: 實現imathservice介面

[b]mathservice.cs[/b]

using system;

using system.collections.generic;

using system.linq;

using system.runtime.serialization;

using system.servicemodel;

using system.text;

public class mathservice : imathservice

public int subtract(int num1, int num2)

}

step 4: service檔案如下所示

[b]mathservice.svc[/b]

step 5: 在web.config檔案中,建立nettcpbinding繫結的終結點,並且服務元資料通過metadata exchange point進行發布。所以建立名為mex的metada exchange end point,並且它的繫結是mextcpbinding。如果沒有公布的服務元資料,我們將沒有辦法建立基於net.tcp位址的**類(比如svcutil.exe net.tcp://localhost/washostedservice/mathservice.svc)

[b]web.config[/b]

[b]建立服務的不同繫結[/b]

1.開始->所有程式->附件->命令列工具,右鍵 以管理員身份執行

輸出如下所示

[img]

step 6: 現在服務已經準備好被使用了,下一步我們將使用服務工具建立供客戶端程式使用的**類。建立**類使用vs命令列工具,並且執行如下命令

svcutil.exe net.tcp://localhost/washostedservice/mathservice.svc

**類和配置檔案會在相應的地方生成

[img]

step 7: 建立如下的客戶端應用程式,並且新增參照system.servicemodel

[img]

step 8: 將**類和配置檔案加入到客戶端程式中,建立mathserviceclient的物件,呼叫方法

[b]program.cs[/b]

class program

}

輸出如下所示:

[img]

這篇教程清楚的解釋了將wcf託管在was中的步驟,接下倆我們看如何將服務託管在windows service中

第四章 WCF繫結 1

size large color red 原文 url size x large color orange 繫結和通道棧 color size 在wcf中,所有的通訊細節都是通過通道來處理的,它是通道元件組成的棧,所有的訊息都會在執行時傳輸。最底層的元件是傳輸通道。它實現了乙個給定的傳輸協議,並且從...

第四章棧(3)

3.現實生活中棧的乙個例子是佩茲糖果盒。想象一下你有一盒佩茲糖果,裡面塞滿了紅色 黃色和白色的糖果,但是你不喜歡黃色的糖果。使用棧 有可能用到多個棧 寫一段程式,在不改變盒內其他糖果疊放順序的基礎上,將黃色糖果移出。let candybox new stack candybox.push red c...

第四章 繼承

一 為什麼要繼承 在物件導向中我們將具有很多重複內容的類中的內容提取出來,寫成乙個單獨的類 其他類只需要繼承就能取得這些功能,同時可以在自己類中寫入獨特的自定義方法 二 繼承語法 inte ce circle nsobject 繼承是在介面中定義的 冒號後的類名是要整合的類,nsobject 是co...