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

本人认为编写WCF程序有三个方式:

  1、全自动方式编写
  2、半自动方式编写
  3、纯手工方式编写

 

 

全自动方式编写WCF程序 

 

  为什么称为全自动编写方式,主要是因为服务使用系统模板创建,使用工具配置服务,并用IIS作为宿主,我们只需要编写一点点的代码即可。

 

  例子的功能是通过WCF得到字符串“Hello,Wcf自动服务调用成功!”。

 

 建立步骤

 

  参照“ WCF快速入门——WCF介绍 ”中的“WCF程序的基本架构”图,我们可以知道要建立三个项目:

    1)服务

    2)运行服务的平台,因为此例使用IIS作为宿主,所以此项目不需要建立。

    3)客户端

   注:以下程序用VS2010编写。  

 

一、建立方案    

  1、新建一个空方案WcfAuto。

  2、在空方案WcfAuto中建立二个项目,如下表。

项目名称

类型

用途

WcfAutoService

WCF Service Application

用于建立WCF服务

UserClient

Console Application

客户端。用于调用WCF

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

  

 

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

  根据“WCF程序的基本架构图”,可以看出服务主要有地址、契约、绑定三部分组成。在建立WCF Service Application项目时,系统已帮我们建好了契约和服务类型。 

  2.1、编写契约

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

   注:契约用ServiceContract标识,操作用OperationContract标识。

复制代码
namespace  WcfAutoService
{
    
/*
     契约
     
*/
    [ServiceContract]
    
public   interface  IAutoService
    {
        [OperationContract]
        
string  GetData();
    }
}
复制代码


  2.2、编写服务类型

    服务类型是契约实现。修改WcfAutoService项目中的AutoService,变成下边代码。

复制代码
namespace  WcfAutoService
{
    
/*
     服务类型
     
*/
    
public   class  AutoService : IAutoService
    {
        
public   string  GetData()
        {
            
return   " Hello,Wcf自动服务调用成功! " ;
        }
    }
}
复制代码

  2.3 修改Web.Config

  将 “WcfAutoService”项目中Web.Config底部的system.serviceModel部分变成下列代码。服务配置方法请看“WCF 宿主配置文件app.config 的简单配置 说明”。

复制代码
   < system.serviceModel >
    
< services >
      
< service  behaviorConfiguration ="WcfAutoService.Service1Behavior"
        name
="WcfAutoService.AutoService" >
        
< endpoint  address =""  binding ="wsHttpBinding"  contract ="WcfAutoService.IAutoService" >
          
< identity >
            
< dns  value ="localhost"   />
          
</ identity >
        
</ endpoint >
        
< endpoint  address ="mex"  binding ="mexHttpBinding"  contract ="IMetadataExchange"   />
      
</ service >
    
</ services >
    
< behaviors >
      
< serviceBehaviors >
        
< behavior  name ="WcfAutoService.Service1Behavior" >
          
< serviceMetadata  httpGetEnabled ="true" />
          
< serviceDebug  includeExceptionDetailInFaults ="false" />
        
</ behavior >
      
</ serviceBehaviors >
    
</ behaviors >
  
</ system.serviceModel >
复制代码


  这样基本服务已建好。

 

三、编写运行服务,即编写宿主

   服务编写好后要让其运行。“WCF Service Application”项目运行有两种方式,一个是通过IIS运行服务,另一种是自己建立运行服务的程序。因为全自动方式编写WCF入门程序,所以这里采用IIS来启动WCF,即用IIS作为WCF宿主。

   使用IIS运行服务方法:

    1)我们找到WcfAutoService项目的根目录,并将此目录设置成虚拟目录。

      修改虚拟目录的属性:允许匿名访问;设置默认启动文档为“AutoService.svc”。如下图。 

 

 

    2)测试服务

      在游览器地址中输入“http://localhost/WcfAutoService/AutoService.svc”。会看到下边界面。表示WCF服务已可以运行。

    

 

    四、编写客户端

     4.1、添加服务引用

      在“UserClient”项目上右键->“添加服务引用(Add Service Reference)”。如下图。

 

  在地址中输入刚刚在IIS配置的虚拟目录中svc的路径,“http://localhost/WcfAutoService/AutoService.svc”。点“Go”,运行正常会出现下图。在Namespace中输入此服务在客户端的命名空间。 

 

 

  4.2、编写客户端代码

    在Program.cs中调用服务,代码如下。

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


 

  4.3、运行程序

   将“UserClient”项目设为启动项目并运行,出现结果如下图。

 

 

  这样“全自动方式编写WCF程序”就完成了。其中有一些如“宿主”、“契约”、“终结点”等关键词语关没有作详细的说明,不过在编写完三个入门程序后在理解起来会更容易些。

 

   源码下载:WcfAuto.rar

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值