Hello WCF - WCF应用起步

1. 构建服务层

    新建一个空白解决方案,增加一个项目用来存放WCF服务-HelloWCF.Service

    确保该项目引用System.Model

    1) 构建服务契约

    新建一个接口

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;

namespace HelloWCF.Service
{
    [ServiceContract]
    interface IHelloWorldService
    {
        [OperationContract]
        String GetMessage(String name);
    }
}

 

    2)根据服务契约实现服务

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace HelloWCF.Service
{
    public class HelloWorldService : IHelloWorldService
    {
        public String GetMessage(String name)
        {
            return "Hello world from " + name + "!";
        }
    }
}

 

 2. 寄宿服务于ASP.NET开发服务器

    右击解决方案,新建网站,选择一个空的网站

    给网站添加服务项目的引用

    打开网站属性页

    将使用动态端口设为false

    设置端口号, eg:8080

    给网站增加svc文件

    HelloWorldService.svc

   

<%@ServiceHost Service="HelloWCF.Service.HelloWorldService"%>

 

 3. 新建客户端

   新建一个控制台项目用于客户端

   生成代理和配置文件

     在控制台使用svcutil.exe

     cd C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin

     C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin>svcutil.exe http://localhost:8080/HostDevServer/HelloWorldService.svc?wsdl /out:HelloWorldServiceRef.cs /config:app.config

   定制客户端应用程序

      生成文件:HelloWorldServiceRef.cs和app.config添加到Client项目

      给项目添加System.ServiceModel引用

      修改Program.cs,代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace HelloWorldClient
{
    class Program
    {
        static void Main(string[] args)
        {
            HelloWorldServiceClient client = new HelloWorldServiceClient();
            Console.WriteLine(client.GetMessage("Mike Liu"));
            Console.ReadKey();
        }
    }
}

   运行客户端应用程序

      Ctrl+F5启动HostDevServer

      右键Client项目,设为启动,Ctrl+F5启动

   运行结果:

       Hello World from David Gu

   把服务项目设为自动启动

       右键解决方案->属性->通用属性->启动项目->多启动项目

       HostDevServer: 开始执行不调试

       Client: 开始执行不调试

   启动:

       HostDevServer先启动,然后会自动启动Client

 

 

 

 

posted @ 2012-03-08 11:10  Master HaKu  阅读(249)  评论(0编辑  收藏  举报