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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值