小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

WCF編程系列(一)初識(shí)WCF

 實(shí)力決定地位 2016-09-09
WCF編程系列(一)初識(shí)WCF

Windows Communication Foundation(WCF)是微軟為構(gòu)建面向服務(wù)的應(yīng)用程序所提供的統(tǒng)一編程模型。
WCF的基本概念:
地址:定義服務(wù)的地址
綁定:定義服務(wù)的通訊方式(傳輸協(xié)議、編碼方案)
契約:定義服務(wù)的具體實(shí)現(xiàn)
終結(jié)點(diǎn):由地址、綁定和契約共同構(gòu)成一個(gè)終結(jié)點(diǎn),服務(wù)器通過(guò)終結(jié)點(diǎn)向客戶(hù)端公開(kāi)服務(wù),客戶(hù)端通過(guò)終結(jié)點(diǎn)調(diào)用服務(wù)。

下面通過(guò)一個(gè)簡(jiǎn)單的服務(wù)示例來(lái)認(rèn)識(shí)WCF(只需讓本例順利運(yùn)行即可,關(guān)于代碼中的各種類(lèi)型及WCF的相關(guān)概念我們將在后續(xù)介紹):
1.新建項(xiàng)目,名稱(chēng) XfrogWCFService,解決方案名稱(chēng) XfrogWCFStudy001,模板選擇類(lèi)庫(kù),選擇.NET Framework 3.0版本
2.修改Class1.cs文件名稱(chēng)為 IFirstService.cs
3.添加引用 System.ServiceModel
4.修改IFirstService.cs代碼如下:

隱藏行號(hào) 復(fù)制代碼 IFirstService.cs
  1. using System;
    
  2. using System.Collections.Generic;
    
  3. using System.Text;
    
  4. using System.ServiceModel;
    
  5. namespace Xfrog.Study.WCF
    
  6. {
    
  7.     [ServiceContract]
    
  8.     public interface IFirstService
    
  9.     {
    
  10.         [OperationContract]
    
  11.         String GetData(String name);
    
  12.     }
    
  13. }
    

我們定義了一個(gè)IFirstService接口,注意在接口上申明了ServiceContract特性,即服務(wù)契約,表明該接口是一個(gè)服務(wù)。方法上聲明了OperationContract特性,表示該方法是IFirstService的一個(gè)服務(wù)方法,客戶(hù)端可遠(yuǎn)程調(diào)用該方法。

5.添加一個(gè)新類(lèi),文件名為FirstService.cs,代碼如下:

隱藏行號(hào) 復(fù)制代碼 ? FirstService.cs
  1. using System;
    
  2. using System.Collections.Generic;
    
  3. using System.Text;
    
  4. namespace Xfrog.Study.WCF
    
  5. {
    
  6.     public class FirstService : IFirstService
    
  7.     {
    
  8.         string IFirstService.GetData(String name)
    
  9.         {
    
  10.             return String.Format("Hello {0},Welcome To WCF!", name);
    
  11.         }
    
  12.     }
    
  13. }
    

OK,到此我們的服務(wù)代碼已經(jīng)編寫(xiě)完成,下面我們必須為服務(wù)提供一個(gè)運(yùn)行的宿主,通過(guò)該宿主程序來(lái)啟動(dòng)我們的服務(wù)。
6.在同一解決方案下新建一個(gè)項(xiàng)目,名稱(chēng)為Host,類(lèi)型為控制臺(tái)應(yīng)用程序
7.Host項(xiàng)目中添加引用,引用項(xiàng)目XfrogWCFService,然后再添加引用:System.ServiceModel
8.修改Program.cs代碼如下:

隱藏行號(hào) 復(fù)制代碼 ? Program.cs
  1. using System;
    
  2. using System.Collections.Generic;
    
  3. using System.Text;
    
  4. using System.ServiceModel;
    
  5. using Xfrog.Study.WCF;
    
  6. namespace Host
    
  7. {
    
  8.     class Program
    
  9.     {
    
  10.         static void Main(string[] args)
    
  11.         {
    
  12.             using (ServiceHost host = new ServiceHost(typeof(FirstService)))
    
  13.             {
    
  14.                 host.Open();
    
  15.                 Console.WriteLine("服務(wù)已啟動(dòng),按任意鍵中止...");
    
  16.                 Console.ReadKey(true);
    
  17.                 host.Close();
    
  18.             }
    
  19.         }
    
  20.     }
    
  21. }
    


以上,我們已經(jīng)實(shí)現(xiàn)了服務(wù)以及為服務(wù)提供了一個(gè)運(yùn)行宿主,即契約部分已經(jīng)完成,下面我們?yōu)榉?wù)指定地址及綁定,本步驟可通過(guò)WCF的管理工具,或直接編寫(xiě)配置文件來(lái)完成。我們先采用手工編寫(xiě)配置文件的方式:
9.新建項(xiàng),選擇應(yīng)用程序配置文件,文件名App.config保持不變。
10.修改app.config內(nèi)容如下:

隱藏行號(hào) 復(fù)制代碼 ? App.config
  1. <?xml version="1.0" encoding="utf-8" ?>
    
  2. <configuration>
    
  3.   <system.serviceModel>
    
  4.     <services>
    
  5.       <service name="Xfrog.Study.WCF.FirstService" behaviorConfiguration="behaviorConfiguration">
    
  6.         <host>
    
  7.           <baseAddresses>
    
  8.             <add baseAddress="http://localhost:8000/"/>
    
  9.           </baseAddresses>
    
  10.         </host>
    
  11.         <endpoint address="" binding="basicHttpBinding" contract="Xfrog.Study.WCF.IFirstService"></endpoint>
    
  12.       </service>
    
  13.     </services>
    
  14.     <behaviors>
    
  15.       <serviceBehaviors>
    
  16.         <behavior name="behaviorConfiguration">
    
  17.           <serviceMetadata httpGetEnabled="true"/>
    
  18.         </behavior>
    
  19.       </serviceBehaviors>
    
  20.     </behaviors>
    
  21.   </system.serviceModel>
    
  22. </configuration>
    


11.設(shè)置Host項(xiàng)目為啟動(dòng)項(xiàng)目,啟動(dòng)調(diào)試??刂婆_(tái)上顯示服務(wù)已啟動(dòng)后,打開(kāi)瀏覽器輸入服務(wù)地址:http://localhost:8000/ ,瀏覽器中會(huì)打開(kāi)我們的服務(wù)頁(yè)面,這表示我們的服務(wù)已經(jīng)啟動(dòng)成功,客戶(hù)端可通過(guò)該地址訪問(wèn)我們的服務(wù)了。
下面,我們將創(chuàng)建一個(gè)客戶(hù)端來(lái)訪問(wèn)我們的服務(wù)
12.在同一解決方案下新建一個(gè)項(xiàng)目,名稱(chēng)為Client,類(lèi)型為控制臺(tái)應(yīng)用程序
13.我們將使用微軟的svcutil工具生成FirstService服務(wù)的客戶(hù)端代理類(lèi),通過(guò)開(kāi)始菜單/Microsoft Visual Studio 2008/Visual Studio Tools/Visual Studio 2008命令提示,啟動(dòng)命令環(huán)境。
14.確認(rèn)FirstService服務(wù)已啟動(dòng)
15.切換當(dāng)前路徑到解決方案目錄:
cd G:\Study\WCF\XfrogWCFStudy001
g:
16.輸入命令:
svcutil http://localhost:8000/?wsdl /o:FirstServiceClient.cs
執(zhí)行成功后,會(huì)在解決方案目錄下生成兩個(gè)文件:FirstServiceClient.cs 和output.config
17.中止Host項(xiàng)目的調(diào)試,回到Client項(xiàng)目,選擇添加 現(xiàn)有項(xiàng) ,然后選擇這兩個(gè)文件,添加后,將output.config重命名為App.config
18.Client項(xiàng)目中添加引用,選擇System.ServiceModel
19.修改program.cs代碼如下:

隱藏行號(hào) 復(fù)制代碼 Program.cs
  1. using System;
    
  2. using System.Collections.Generic;
    
  3. using System.Text;
    
  4. namespace Client
    
  5. {
    
  6.     class Program
    
  7.     {
    
  8.         static void Main(string[] args)
    
  9.         {
    
  10.             String key = "";
    
  11.             while (String.Compare(key, "Q", true)!=0)
    
  12.             {
    
  13.                 FirstServiceClient client = new FirstServiceClient();
    
  14.                 Console.WriteLine(client.GetData(key));
    
  15.                 key = Console.ReadLine();
    
  16.             }
    
  17.         }
    
  18.     }
    
  19. }
    


20.Host項(xiàng)目上單擊右鍵,選擇調(diào)試—>啟動(dòng)新實(shí)例,待服務(wù)啟動(dòng)完成后,在Client項(xiàng)目上單擊右鍵,選擇調(diào)試—>啟動(dòng)新實(shí)例。輸入任意字符回車(chē),Client將調(diào)用FirstService服務(wù)GetData方法,返回一個(gè)字符串。輸入q退出Client。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多