如何在IIS中部釋出我們上一篇中做好的WCF服務。
第一步:打開我們上一篇文章中建立的WCF服務項目。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiInBnauIWb1hGdfJDMwU2Zh1WafBXasN2LcFDO0Y0XGN0VTlUSGN0VvwlclRXaydVZ2lGTzd3bk5WaX9CXzVGdv5mbvN3cp9GcvwVbvN2Xzd2bsJmbj9CXt92YuM3ZvxmYuNmLzV2Zh1Wavw1LcpDc0RHaiojIsJye.jpg)
圖《1》
第二步:建立WCF服務站點。在解決方案上右擊,選擇“添加”->“建立網站”,打開建立網站對話框。在“添加新網站”對話框中,我們選擇“WCF服務”,并把網站的名子命名為“BookServiceHost”
圖《2》
建立起來的新的WCF服務站點的結果如下,其中在App_Code檔案中自動為我們生成兩個類檔案:IService.cs和Service.cs。這兩個檔案對我們來說沒有用,我們删掉。
圖《3》
第三步:在剛剛建立的WCF服務站點上添加對WCF服務庫項目--Services項目的引用。
圖《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配置”
《圖5》
在彈出的服務配置視窗中,把Service服務指定到WCF服務庫的Services.dll中的Services.BookService服務類上。
《圖6》
再把其中的一個對外終結點的Contract設為WCF服務庫的Services.dll中的Services.IBookService服務契約上。
《圖7》
第六步:試着再添加一個通信的終結點。
這一步是可選的,我們再為此WCF服務站點添加一個終結點,A=basic B=basicHttpBinding C=Services.IBookService
《圖8》
下面我們将試着使用不同的終結點與WCF服務進行互動,檢視運作情況。
當我們使用IIS5或IIS6釋出WCF服務的時候一般隻建立Http綁定的終結點,而不能建立使用TCP綁定、管道綁定的終結點。
第七步:測試運作WCF服務站點。
在Service.svc上右擊,選擇“在浏覽器中檢視”,在IE中運作此服務。
《圖9》
由此我們看到我們可以在ASP.NET Development Server中釋出我們的WCF服務了。
第八步:在IIS布署此WCF服務站點。
在IIS建立Web應用程,指向我們的WCF服務站點所在的目錄。然後在IIS運作我們釋出的WCF服務
《圖10》
從上圖中我們看到釋出的站點中不再包含有端口号。
到此為至我們在IIS中釋出WCF服務成功。
下面我們在WCF測試用戶端調用我們剛剛在IIS中釋出的WCF服務
第九點:在VS2008指令視窗中輸入以下代碼運作WCF測試用戶端
x:/.../wcftestclient http://localhost/TestWCFService/Service.svc
彈出測試視窗如下:
《圖11》
我們可以看到釋出的服務中有兩個終結點:這兩個終結點的傳輸方式不同,但提供的方法是相同的。
我們通過第一個終結點的AddBooks()方法添加三個對象。
《圖12》
再通過第二個終結點的GetAllBooks()方法取得所有對象的資訊。
《圖13》
(原創:灰灰蟲的家http://hi.baidu.com/grayworm)