使用WCF建立Web服務

2021-04-15 17:16:00 字數 4585 閱讀 6142

learn wcf service basic

wcf是使用託管**建立和執行面向服務

(service oriented)

應用程式的統一框架。它使得開發者能夠建立乙個跨平台的、安全、可信賴、事務性的解決方案,且能與已有系統相容協作。

wcf是微軟分布式應用程式開發的集大成者,它整合了

.net

平台下所有的和分布式系統有關的技術,例如

.net remoting

、a**x

、wse

和m**q

。一些術語解釋:

soa

面向服務的體系結構(

service-oriented architecture

,soa

)是一種

it 體系結構風格,支援將業務轉換為一組相互鏈結的服務或可重複業務任務,可在需要時通過網路訪問這些服務和任務。這個網路可以是本地網路、

internet

,也可以分散於各地且採用不同的技術,比如通過對來自紐約、倫敦和中國香港的服務進行組合,可讓終端使用者感覺似乎這些服務就安裝在本地桌面上一樣。可以對這些服務進行結合,以完成特定的業務任務,從而讓業務快速適應不斷變化的客觀條件和需求。

wse

wse(web service

s enhancements

) 是微軟提供的乙個實現了

ws-security, ws-routing, ws-policy

、ws-addressing

,ws-attachments and dime

等標準的元件

(dll)

。是對web service

的補充與加強。它使得開發人員可以不需要深入了解上述協議的具體內容就可以開發相應的

web services

程式,大大簡化了開發難度,使得

web services

應用在企業級專案上成為可能。

.net remoting:

簡而言之,可以將其看作是一種分布式處理方式。從微軟的產品角度來看,可以說

remoting

就是dcom

的一種公升級,它改善了很多功能,並極好的融合到

.net

平台下。

microsoft .net remoting

提供了一種允許物件通過應用程式域與另一物件進行互動的框架

。它能夠高效能的實現

.net

與.net

之間的通訊。

m**q

m**q(microsoft message queue

,微軟訊息佇列

)是在多個不同的應用之間實現相互通訊的一種非同步傳輸模式,相互通訊的應用可以分布於同一臺機器上,也可以分布於相連的網路空間中的任一位置。它的實現原理是:訊息的傳送者把自己想要傳送的資訊放入乙個容器中(我們稱之為

message

),然後把它儲存至乙個系統公用空間的訊息佇列

(message queue)

中;本地或者是異地的訊息接收程式再從該佇列中取出發給它的訊息進行處理。

soap

:簡單物件訪問協議

(soap

,全稱為

****** object access protocol)

是一種標準化的通訊協議,它主要用於

web服務

(web service)

中。soap

的出現是為了簡化網路伺服器

(web server)

在從xml

資料庫中提取資料時,不用花時間格式化頁面,並且能夠讓不同的應用程式之間通過

協議,以

xml格式互相交換彼此的資料,使其與程式語言、平台和硬體無關。

enterprise service(com+)

:enterprise services

可以追溯到發布為乙個

windows nt 4.0

選項包的

microsoft transaction server (mts)

。mts

提供了com

物件的事務處理等服務,擴充套件了

com。由於

mts擴充套件

com的方式與

com不相容,所以從

mts應用程式中呼叫

com物件需要特定

mts api

呼叫。by

[email protected]

林剛windows 2000

的乙個最重要的新特性是在

com+

中整合了

mts和

com。在

windows 2000

中,com+

基本服務支援

com+服務(

以前的mts服務)

需要的環境,例如分布式事務處理。

com+

也新增了一些服務。

com+ 1.5

可以在windows xp

和windows server 2003

中使用。

com+ 1.5

也新增了一些特性,以提高可伸縮性和可用性,包括應用程式池和迴圈,以及可配置的隔離級別。

.net enterprise services

可以在.net

元件中使用

com+

服務,並為

windows 2000

及其後續版本提供了支援。在

com+

應用程式中執行

.net

元件,不需要使用

ccw;而是作為

.net

元件執行。在作業系統上安裝

.net

執行庫程式,會給

com+

服務新增一些擴充套件。

wcf可以非常簡單的建立乙個webservice,下面我們通過乙個例子來進行說明。

例子:第一步: 新增

wcf名稱域:

using

system.servicemodel;

using

system.servicemodel.description;

servicemodel 是.net當中用來實現wcf服務功能的名稱域。

第二步: 定義服務。

[servicecontract()]

public

inte***ce

iserviceinte***ce

public

class

service1 : iserviceinte***ce

}一般來講,將服務定義為介面,然後由它衍生出多中服務的類。這樣做的乙個好處是可以在介面級別定義屬性,而在服務的類的級別看不到任何屬性資訊。只需要實現預先定義好的方法就可以。

第三步:

建立宿主,

wcf的

service

可以執行在程式,

windows

服務或者

asp.net

上面,我們使用

console

來建立宿主:

internal

class

myservicehost

internal

static

void stopservice()

} static

void main(string args)

這裡,我們定義了乙個宿主

myservicehost,

其中包含乙個

servicehost

類的成員,

servicehost

類是servicemodel

當中用來建立通訊物件的類。我們可以通過它來建立乙個監聽的物件,成為

endpointlistener.

第四步:建立

wcf執行時。

internal

static

void startservice()

第五步:

測試:在瀏覽器當中鍵入

,將會看到建立的服務顯示:

第六步:用應用程式客戶端測試

wcf服務:

在命令列中敲入

會自動生成客戶端

serviceclient

物件的**,產生兩個檔案

service1.cs

和output.config

,然後在客戶端就可以使用服務客戶端的類進行同

wcf service

的通訊。

class

}

建立WCF服務

我們在開發wcf時,一般用vs建立wcf專案,然後 自動生成。但如果你想要真正了解全過程,不防,咱門今天晚上自己從零開始。完成乙個wcf的服務發布。模擬場景 我們要建立乙個全國文憑資源查詢系統。用服務形式進行公開。1.首先我們建立乙個空白解決方案 mywcf 2.我們再來建立乙個windows程式專...

wcf的簡單服務建立

這是我第一次在部落格寫作,主要是為了記錄一下自己在工作或者生活中的一些所得,希望能夠用作乙個備忘錄吧。首先,在vs上面建立乙個專案,不用特定的建立wcf專案,直接建立乙個空專案即可,廢話不多說直接上 這個是服務端的入口程式,因為服務比較簡單,不需要手動配置,直接用 的方式新增配置。using sys...

silverlight動態建立WCF服務

最近在發布silverlight專案時,服務位址不是固定,因此服務需要動態建立。在網上搜了點資料找到了動態建立服務的方法,直接上 根據服務型別建立服務 public static class createservice catch exception if constructor null inst...