zoukankan      html  css  js  c++  java
  • WCF快速入门——半自动方式编写WCF入门程序

    WCF快速入门——半自动方式编写WCF入门程序

      为什么称为半自动编写方式,主要是因为服务使用系统模板创建,但需要自己建立程序来运行服务。就好像系统给你一个半成品,剩余部分由你自己来完成。

      用例子来说明。例子的功能是通过WCF得到字符串“Hello,Wcf半自动服务建立成功,并调用成功!”。例子代码用Vs2010编写。


    建立步骤

      与前一篇文章“WCF快速入门——全自动方式编写WCF入门程序”一样,先参照“WCF快速入门——WCF介绍”中的“WCF程序的基本架构”图,我们可以知道要建立三个项目:

        1)服务
        2)运行服务的平台,即服务宿主
        3)客户端

       注:以下程序用VS2010编写。  

    一、建立方法
      1、新建一个空方案WcfHalfAuto。
      2、在空方案WcfHalfAuto中建立三个项目,如下表。

    项目名称

    类型

    用途

    WcfHalfService

    Wcf Service Library

    用于建立WCF服务

    HalfServiceHost

    Console Application

    运行WCF 服务的平台。即WCF 服务的宿主

    UserClient

    Console Application

    客户端。用于调用WCF

      修改项目中的一些名称,最终此方案如下图。  


    二、编写服务,即编写WcfHalfService项目

      根据“WCF程序的基本架构图”,可以看出服务主要有地址、契约、绑定三部分组成。在建立WCF Service Application项目时,系统已帮我们建好了契约、服务类型。
      注:WcfHalfService项目有个应用程序配置文件App.Config。此配置文件是宿主的配置模板。此项目中用不到此文件,可以删除。

      2.1、编写契约

       契约其实是一个接口修改。修改WcfHalfService项目中的IHalfService,变成下边代码。

    namespace WcfHalfService
    {
        
    /*
        契约
        
    */
        [ServiceContract]
        
    public interface IHalfService
        {
            [OperationContract]
            
    string GetData();
        }
    }

     

      2.2、编写服务类型
        服务类型是契约实现。修改WcfHalfService项目中的HalfService,变成下边代码。

    namespace WcfHalfService
    {
        
    /*
         服务类型
         
    */
        
    public class HalfService : IHalfService
        {
            
    public string GetData()
            {
                
    return "Hello,Wcf半自动服务建立成功,并调用成功!";
            }
        }
    }

      这样基本服务已建好。

    三、编写运行服务,即编写宿主
       服务编写好后要让其运行。前一篇文章“WCF快速入门——全自动方式编写WCF入门程序”中我们使用IIS作为WCF的宿主,在这里我们自己建立运行服务的程序。

      建立WCF宿主方法
         3.1、添加引用。
          在“HalfServiceHost”项目中需要添加两个引用,一是WCF必须引用的类System.ServiceModel。二是WCF的服务WcfHalfService。如下图。

     

      

         3.2、添加配置文件
          在HalfServiceHost项目中添加一个应用程序配置文件(Application Configuration file)。使用置认的名称App.Config。如下图中。

     
         3.3、配置App.Config文件
          WCF的配置可以通过微软件的WCF配置工具进行配置。此工具通“Tools”->“WCF Service Configuration Editer”打开。如下图。  

     
         我们在编写“HalfServiceHost”项目时,只编写了“服务类型”和“契约”。参照“WCF快速入门——WCF介绍”中的“WCF程序的基本架构”图。我们会发现。服务中还有“地址”、“绑定”及“行为”没有定义。这时我们需要在此配置文件中定义。如下图。 

     
         最终App.Config文件内容为如下。
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      
    <system.serviceModel>
        
    <services>
          
    <service name="WcfHalfService.HalfService" behaviorConfiguration="HalfServiceBehavior">
            
    <host>
              
    <baseAddresses>
                
    <add baseAddress="http://localhost:8001/HalfServices/" />
              
    </baseAddresses>
            
    </host>
            
    <endpoint address="HalfService" binding="basicHttpBinding"
             contract
    ="WcfHalfService.IHalfService"  />
          
    </service>
        
    </services>
        
    <behaviors>
          
    <serviceBehaviors>
            
    <behavior name="HalfServiceBehavior">
              
    <serviceMetadata httpGetEnabled="true" />
            
    </behavior>
          
    </serviceBehaviors>
        
    </behaviors>
      
    </system.serviceModel>
    </configuration>

      上边配置文件说明请看“WCF 宿主配置文件app.config 的简单配置 说明”。
      
        3.4、编写宿主
         打开“HalfServiceHost”项目中的Program.cs,并编写下边代码,这样,启动和关闭服务的代码就编写好了。

    using System.ServiceModel;

    namespace HalfServiceHost
    {
        
    class Program
        {
            
    static void Main(string[] args)
            {
                
    using (ServiceHost host=new ServiceHost(typeof(WcfHalfService.HalfService)))
                {
                    host.Open();
                    Console.WriteLine(
    "WCF半自动方法服务已启动,按任意键退出!");
                    Console.ReadKey();
                    host.Close();
                }
            }
        }
    }


       3.5、测试宿主程序
        将“HalfServiceHost”项目设为启动项目。运行程序。结果如下图。
     

     

        我们在浏览器中输入“http://localhost:8001/HalfServices/”测试服务是否正常。正常结果如下图。

     
    四、编写客户端

      4.1、添加服务引用
        进入HalfServiceHost的根目录下,在“\bin\Debug”目录,运行“HalfServiceHost.exe”,将WCF服务启动起来。

        在“UserClient”项目上右键->“添加服务引用(Add Service Reference)”。在地址中输入刚刚配置的WCF服务的路径 “http://localhost:8001/HalfServices/”。点“Go”,运行正常会出现下图。在Namespace中输入此服务在客户端的命名空间“WcfHalfServices”。 

        引用完成后关闭刚刚打开的服务。

    4.2、编写客户端代码
        服务编写好后,客户就可以调用了。在Program.cs中调用服务,代码如下。

    namespace UserClient
    {
        
    class Program
        {
            
    static void Main(string[] args)
            {
                
    using (WcfHalfServices.HalfServiceClient client = new WcfHalfServices.HalfServiceClient())
                {
                    
    string result = client.GetData();
                    Console.WriteLine(
    "Wcf调用结果是:{0}", result);
                    Console.ReadKey();
                }
            }
        }
    }

      4.3、运行程序
       先启动“WcfServiceHost”,后运行“UserClient”,出现结果如下图。
       注:启动“WcfServiceHost”可以在WcfServiceHost项目的Debug文件夹中启动。也可以设置方案的启动顺序,启动这两个项目。  

     


      这样“半自动方式编写WCF入门程序”就完成了。编写完此程序后,对WCF基本上有了个轮廓。

     

      源码下载:WcfHalfAuto.rar

     

  • 相关阅读:
    [CF920E] Connected Components?
    [CF981E] Addition on Segments
    [BZOJ2152] 聪聪可可
    [CF1355E] Restorer Distance
    [CF1101D] GCD Counting
    [CF827C] DNA Evolution
    [HNOI2008] 明明的烦恼
    [CF712D] Memory and Scores
    [CF609E] Minimum spanning tree for each edge
    后缀自动机应用小结 I
  • 原文地址:https://www.cnblogs.com/scottckt/p/1853387.html
Copyright © 2011-2022 走看看