天天看點

WCF釋出到IIS

如何在IIS中部釋出我們上一篇中做好的WCF服務。

第一步:打開我們上一篇文章中建立的WCF服務項目。

WCF釋出到IIS

圖《1》

第二步:建立WCF服務站點。在解決方案上右擊,選擇“添加”->“建立網站”,打開建立網站對話框。在“添加新網站”對話框中,我們選擇“WCF服務”,并把網站的名子命名為“BookServiceHost”

WCF釋出到IIS

圖《2》

建立起來的新的WCF服務站點的結果如下,其中在App_Code檔案中自動為我們生成兩個類檔案:IService.cs和Service.cs。這兩個檔案對我們來說沒有用,我們删掉。

WCF釋出到IIS

圖《3》

第三步:在剛剛建立的WCF服務站點上添加對WCF服務庫項目--Services項目的引用。

WCF釋出到IIS

圖《4》

第四步:配置Service.svc檔案。

輕按兩下Service.svc檔案,我們可以看到它的聲明訓示如下:

<%@ ServiceHost Language="C#" Debug="true" Service="Service" CodeBehind="~/App_Code/Service.cs" %>

由于在第二步中我們已經把IService.cs和Service.cs兩個檔案已經删除了,是以這裡的聲明訓示内容修改一下,讓這個Service.svc檔案的背景代碼指向我們上次建立的WCF服務庫項目--Services項目中的類,改後的代碼如下:

<%@ ServiceHost Language="C#" Debug="true" Service="Services.BookService"%>

我們把其中的Service屬性指定為Services命名空間下的BookService類,并把CodeBehind屬性删去了。

第五步:配置此WCF服務站點與WCF服務庫項目之間的類的對應。

雖然在第三步中我們添加了對Services項目的引用,并且在第四步中修改了Service.svc的類的對應,但此時我們的WCF服務站點并不能把WCF服務庫中的服務和終結點釋出出來,還需要我們對web.config進行一系列的配置工作。

在web.config上右擊選擇“編輯WCF配置”

WCF釋出到IIS

《圖5》

在彈出的服務配置視窗中,把Service服務指定到WCF服務庫的Services.dll中的Services.BookService服務類上。

WCF釋出到IIS

《圖6》

再把其中的一個對外終結點的Contract設為WCF服務庫的Services.dll中的Services.IBookService服務契約上。

WCF釋出到IIS

《圖7》

第六步:試着再添加一個通信的終結點。

這一步是可選的,我們再為此WCF服務站點添加一個終結點,A=basic B=basicHttpBinding C=Services.IBookService

WCF釋出到IIS

《圖8》

下面我們将試着使用不同的終結點與WCF服務進行互動,檢視運作情況。

當我們使用IIS5或IIS6釋出WCF服務的時候一般隻建立Http綁定的終結點,而不能建立使用TCP綁定、管道綁定的終結點。

第七步:測試運作WCF服務站點。

在Service.svc上右擊,選擇“在浏覽器中檢視”,在IE中運作此服務。

WCF釋出到IIS

《圖9》

由此我們看到我們可以在ASP.NET Development Server中釋出我們的WCF服務了。

第八步:在IIS布署此WCF服務站點。

在IIS建立Web應用程,指向我們的WCF服務站點所在的目錄。然後在IIS運作我們釋出的WCF服務

WCF釋出到IIS

《圖10》

從上圖中我們看到釋出的站點中不再包含有端口号。

到此為至我們在IIS中釋出WCF服務成功。

下面我們在WCF測試用戶端調用我們剛剛在IIS中釋出的WCF服務

第九點:在VS2008指令視窗中輸入以下代碼運作WCF測試用戶端

x:/.../wcftestclient http://localhost/TestWCFService/Service.svc

彈出測試視窗如下:

WCF釋出到IIS

《圖11》

我們可以看到釋出的服務中有兩個終結點:這兩個終結點的傳輸方式不同,但提供的方法是相同的。

我們通過第一個終結點的AddBooks()方法添加三個對象。

WCF釋出到IIS

《圖12》

再通過第二個終結點的GetAllBooks()方法取得所有對象的資訊。

WCF釋出到IIS

《圖13》

(原創:灰灰蟲的家http://hi.baidu.com/grayworm)