通過前面的筆記我們知道WCF服務是不能獨立存在,必須“寄宿”於其他的應用程序中,承載WCF服務的應用程序我們稱之為“宿主”。WCF的多種可選宿主,其中比較常見的就是承載於IIS服務中,在這里我們來學習如何使用IIS承載WCF服務。
在前面的筆記的示例中我們使用自己創建的控制台應用程序來承載WCF服務,現在我們將使用IIS來作為這個示例程序的宿主。將IIS作為宿主只需要正確的配置好IIS就可以了,同時在IIS中運行WCF服務不需要編寫任何承載代碼。
注意:
使用IIS( IIS 5.1 和 IIS 6.0)作為WCF服務的宿主有一個限制:只可以將 IIS 宿主與 HTTP 傳輸協議一起使用。
1.創建SVC文件和Web.config文件
首先我們打開上一篇筆記中的的示例程序(點擊下載)解決方案,在Service項目下分別創建兩個文件:CalculatorService.svc和Web.config文件,如下:
2.添加System.ServiceModel程序集引用和更改程序生成目錄
上一篇筆記中的示例代碼解決方案中Service項目並沒有引用System.ServiceModel程序集,所有在這里我們需要對其添加引用。同時由於我們的WCF服務部署到IIS上時就是作為一個Web應用程序,而所有的Web應用程序只會從根目錄下的bin子目錄中加載程序集,而我們Visual Studio 2010在默認的情況下,編譯后程序集是存放在bin目錄下的Debug目錄或者Release目錄下的,所有我們需要將Service項目輸出更改到bin目錄去:
3.配置SVC文件
每個WCF服務都有一個對應的擴展名為svc的文本文件,當WCF服務的程序文件部署到IIS后,訪問WCF服務就是對相應的svc文件進行訪問。對於客戶端程序來說svc文件的地址就是服務終結點的地址,svc文件僅包含一個<%@ServiceHost %>指令和它一系列的可選屬性(點擊查看)。
現在我們打開之前創建的CalculatorService.svc文件,添加下面的指令:
1 //Service是命名空間,CalculatorService是提供服務的類名 2 <%@ServiceHost Service="Service.CalculatorService"%>
4.配置Web.config文件
通過上一篇筆記我們知道:WCF服務的所有通信是通過該服務的終結點進行的。而終結點又是由地址、綁定、契約三者構成的。前面的svc文件已經聲明了終結點的地址,現在我們通過配置Web.config文件來聲明WCF服務的綁定和契約。
手動配置Web.config文件比較麻煩也容易出錯,我們可以通過使用Visual Studio 2010提供的配置工具類簡化這一過程,在Visual Studio 2010的菜單中選擇:工具——>WCF服務配置編輯器。
4.1 使用WCF服務配置編輯器打開創建的Web.config文件
4.2 使用WCF服務配置編輯器對Web.config文件進行配置
1.>創建服務
選擇 新建服務——>瀏覽——>選擇Service項目生成的Service.dll文件(具體配置操作這里不再贅述)
2.>創建服務行為,並將行為和對應服務綁定
最后我們生成的Web.config配置文件如下所示:
1 <?xml version="1.0" encoding="utf-8" ?> 2 <configuration> 3 <system.serviceModel> 4 <behaviors> 5 <serviceBehaviors> 6 <behavior name="metadataBehavior"> 7 <serviceMetadata httpGetEnabled="true" /> 8 </behavior> 9 </serviceBehaviors> 10 </behaviors> 11 <services> 12 <service behaviorConfiguration="metadataBehavior" name="Service.CalculatorService"> 13 <endpoint address="" binding="wsHttpBinding" bindingConfiguration="" 14 contract="ContractService.ICalculator" /> 15 </service> 16 </services> 17 </system.serviceModel> 18 </configuration>
5.部署到IIS並設置ASP.NET對WCF服務目錄訪問權限
1.>在IIS中默認網站中新建虛擬目錄,將別名命名為HelloWCF,並將其設置為應用程序。
2.> 設置ASP.NET對WCF服務所在目錄訪問權限
打開解決方案所在目錄,選中Service項目所在的文件夾,點擊鼠標右鍵,然后選擇“安全”選項——>點擊“添加”——>點擊“高級”——>點擊“立即查找”,選擇”ASP.NET Machine Account“(Windows XP 中),點擊“確定”,保存設置就可以了。
如果是在Windows 7系統中則添加“IIS_IUSRS”賬戶,如下:
提示:如果文件屬性選項卡中沒有“安全”選擇時
打開“我的電腦”——>選擇“工具”選項——>選擇“文件夾選項”,將“使用簡單的文件共享”選項,不選中。
6.訪問部署在IIS上的WCF服務
部署完成后,調用的步驟和前面筆記是一樣的,我們也可以直接從瀏覽器來訪問svc文件查看WCF服務是否部署成功,我們在瀏覽器中輸入:
http://localhost/HelloWCF/CalculatorService.svc,我們可以看到服務已經成功啟動了:
猛擊下載:示例源碼
參考資料&進一步閱讀
作者:晴天豬
出處:http://www.cnblogs.com/IPrograming
本文版權歸作者和博客園共有,轉載請注明出處。