原文://http://www.cnblogs.com/tntboom/p/4348483.htmlhtml
引言:上學期由於寫服務器用WCF,因此連查資料再瞎調試勉強成功了,可是這學期又到了用WCF的時候,而當時的資料零零散散,查找不易,而且這次是在WIN8與VS2013環境下編寫的,因此將該入門過程記錄下來,一是方便查閱,二是有助於其餘新手。web
1、新建工程並編寫。windows
一、打開VS2013,新建--WCF----WCF服務應用程序,工程名稱請根據愛好自行填寫。如圖:瀏覽器
二、觀察解決方案框中的文件列表,其中IService.cs是接口文件,裏面定義了該服務提供了哪寫服務(函數,功能),Service.svc是(默認也能夠刪除再新建的)一個WCF服務,其下有個.cs文件,就是你對接口的實現。安全
下面簡介這兩個.cs文件(我只介紹一兩個標誌,其餘的也不是很懂,知足最初始的使用便可)。服務器
2.1 IService.cs文件函數
其中[ServiceContract]是一個特性,表明此接口定義了一串服務契約, [OperationContract]標記了操做契約,在編譯時,WCF會用反射機制,將全部標記了 [OperationContract]的方法做爲服務使用。具體如圖:工具
此處默認定義了一個得到字符串的方法與一個得到CompositeType的方法,因爲Service.svc.cs繼承了這個接口,因此要在裏面實現這兩個方法。post
2.2 Service.svc.cs文件,繼承IService接口,實現其方法,以下圖:visual-studio
我在此只列出了一個實現,就是根據傳入的值,返回字符串。
3. 調試
正如註釋中所說, // 注意: 爲了啓動 WCF 測試客戶端以測試此服務,請在解決方案資源管理器中選擇 Service1.svc 或 Service1.svc.cs,而後開始調試。
咱們選中Service.svc.cs,按F5或這Ctrl+F5,在出現的測試客戶端左側單擊GetData()函數,出現以下調試界面:
在右側「值」處輸入你指望調試的的數據,單擊調用便可在下方看到結果:
接下來咱們須要在客戶端調用它,至於如何調用,下篇文章將三種方法介紹,一是用VS運行程序開啓代理,二是部署到本地IIS,三是部署到windows azure虛擬機中。
上文簡介瞭如何創建WCF工程而且調試,下面說一下如何部署。
本文將陸陸續續講述三種部署方式,隨着項目的進展將不斷補全。
聲明: 用管理員身份打開VS2013,發佈前請將程序的.net版本改爲與服務器相符的,我這示例是4.0版。
首先,在WIN8系統下打開IIS,WIN8與WIN7是不一樣的,請不要弄混。
一、控制面板---左下放的程序---啓用或關閉Windows功能,如圖:
二、找到Internet Information Services,其中FTP服務器,WEB管理工具下面的全部文件夾及其子文件夾全選,令萬維網服務中的安全性、常見HTTP功能、性能功能全選。以下圖:
還有,應用程序開發功能勾選狀態如圖:
運行情況診斷下全不勾選。
另外,Win8與Win7不一樣之處在於此,即,在啓用或關閉Windows功能界面的頂端,有.NET Framework4.5高級服務,其勾選狀態應該以下圖:
至此,系統所須要的IIS環境應該已經具有
1、用VS2013啓動IIS EXPRESS
選中項目,不是選中某個文件,而後附加到瀏覽其運行(單擊平時調試普通程序的那個綠色三角)
瀏覽器會有以下界面:
單擊中部位置的Service.svc.cs,瀏覽器呈現以下界面:
表明VS已經替你開了一個服務,而且告訴了你如何在客戶端調用。到時候的地址就是我紅線中標識出來的那個藍色鏈接。到時候在客戶端程序中添加進去就
2、部署至本地IIS
本覺得會和VS2010那樣複雜,結果,萬萬沒想到啊,如此簡單,在此特別感謝http://www.c-sharpcorner.com/Blogs/15762/publish-wcf-service-in-local-iis-on-visual-studio-2013.aspx的博主。
這個網址,前天,今天白天都沒打開,今晚運氣好,打開了。話很少說,半分鐘教會你。
首先參照前文把WINDOWS的IIS該打勾的打勾。
用管理員身份打開VS2013
而後右鍵工程名字,選擇屬性,彈出對話框,在左側選擇web選項卡,而後在畫紅框處的組合框中選擇部署到本地IIS,如圖:
記住項目URL。
而後單擊左側的打包/發佈網頁選項卡,在「要部署的項目適用於全部部署方法」中選擇「僅限運行此應用程序所需的文件」,如圖:
而後按F5,就部署到本地IIS了,把上上圖那個URL複製到瀏覽器,就是見證奇蹟的時刻了。
3、部署至遠程服務器
環境:本地:VS2013+WIN8.1(操做系統無關係的)
遠程:windows server2012(安裝好IIS)
一、本地操做:
右鍵單擊工程,單擊發布,在彈出的窗口中,單擊(默認)左側的配置文件,單擊自定義,而後把項目中的配置文件的名字輸進去,如圖:
而後選擇左側鏈接,發佈方法選擇文件系統,目標位置選擇你喜歡的本地文件夾,到時候會發布在該文件夾下,如圖:
而後單擊左側設置,選擇Relase,如圖:
而後單擊預覽,基本沒什麼操做,單擊發布,如圖:
如此,在剛纔選的文件夾下面就發現瞭如下幾個東西:
個人是D:\Secpayment
將含有這三個寶貝的文件夾拷貝到遠程服務器上,我暫且放在了C盤。如此,本地操做完。
二、服務器操做:
在服務器中打開web publish service 服務,怎麼打開就不演示了,我也忘了。。。看官你查查怎麼打開服務就好了。
而後打開IIS管理器,單擊左側的應用程序池,點擊後後,右側有個設置應用程序池默認設置,點開,而後設置爲v4.0,如圖:
接着,右鍵單擊左側的「網站」,點擊添加網站,彈出以下窗口:
網站名稱就是將要在左側顯示的,物理路徑就是你拷貝到服務器的那個文件夾。IP請選擇你遠程訪問服務器的那個IP,端口的話,你的80不能用就換8080.
注意:要單擊測試設置,可能會出現以下提示:
爲了驗證受權,關掉這個窗口,在上上圖中,單擊鏈接爲,在彈出的窗口裏選擇特定用戶,單擊設置。輸入你登陸服務器的帳號密碼便可:
以後驗證如圖:
而後關閉這個,就能夠發佈了。可是當瀏覽網站時發現,說禁用元數據發佈了。那咱們看一下配置文件:
第一個紅線出,
serviceMetadata httpGetEnabled="true" 設置爲true,然後面https的那個必定要設置爲false,由於~~服務器不支持。
保存。而後在IIS管理器中,右鍵單擊剛纔的網站,管理網站--瀏覽,OK了。
(完)
在文二中部署成功後就能夠在客戶端程序中使用服務了。。。使用服務的過程老是這麼酣暢淋漓。固然,對應文二中的三種部署方式,我也會在此描述三種使用方式,一一對應。
都是新建個程序了,而後開始介紹。
1、VS2013開始服務的方式下調用。注意保持剛纔那個VS工程一直運行着,否則服務就關了。。。
一、右鍵單擊引用--添加服務引用,如圖:
彈出以下界面:
上面紅框中的地址欄就填寫文二末尾提到的地址欄,而後下面紅框填寫一個你喜歡的名字。點擊肯定。
二、加入名字空間:以下:using 客戶端工程名.服務的命名空間,例如我新建的客戶端工程名爲:TestTest,則以下添加名字空間:
using TestTest.TestServer;
三、定義實例,使用服務。
還記得文二中那個服務類的名字叫Service1嗎?那麼咱們能夠如此在客戶端中定義實例了:
Service1Client sClient = new Service1Client();
MessageBox.Show( sClient.GetData(2));
而後運行就能夠看到,服務端給咱們構建好了字符串而且返回了。
其餘:不管何種調用,都是按照上面的方式。
(完)